python - 如何理解django类里的方法
PHP中文网
PHP中文网 2017-04-17 17:45:32
0
2
219
class AccountAdmin(admin.ModelAdmin):
    def save_model(self, request, obj, form, change):
        obj.security = get_random_code(10)
        obj.password = get_password(obj.password, obj.security)
        obj.save()
        Token.objects.create(user=obj)

admin.site.register(Account, AccountAdmin)

save_model()方法里这么多参数用来干什么,还是默认的?
看了下调用,根本就没有传入这么多值嘛。

PHP中文网
PHP中文网

认证高级PHP讲师

répondre à tous(2)
刘奇

Je viens de chercher le code source, où save_model est appelé, le tout avec ces paramètres,
Par exemple, exemple 1 et exemple 2

刘奇

Cette méthode est appelée lorsque le modèle est enregistré, alors quel est le but de cette conception ?

La réponse est : vous pouvez facilement effectuer certaines opérations avant ou après la sauvegarde. Par exemple, dans le code que vous avez publié, vous définissez la sécurité lors de la sauvegarde
Enregistrez et créez un nouveau jeton. la logique est très simple Facile à mettre en œuvre.
obj est l'objet enregistré, form est une instance de ModelForm et change est une valeur booléenne indiquant si l'obj a été modifié. S'il n'y a pas de changement, la méthode de sauvegarde ne peut pas être appelée.

Je dois dire que la conception de cette fonction est tout à fait raisonnable et pratique.
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal