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()方法里这么多参数用来干什么,还是默认的?
看了下调用,根本就没有传入这么多值嘛。
방금 save_model이 호출되는 소스 코드를 검색했는데 모두 다음 매개변수를 포함하고 있습니다.
예를 들어 예제 1과 예제 2
모델을 저장할 때 호출되는 메소드인데, 이 디자인의 목적은 무엇인가요?
답은 다음과 같습니다. 저장 전이나 후에 일부 작업을 쉽게 수행할 수 있습니다. 예를 들어 게시한 코드에서 저장 시 보안을 설정하고
前
저장
后
비즈니스를 만듭니다. 논리는 매우 간단합니다. 구현하기 쉽습니다.obj는 저장된 객체이고, form은 ModelForm 인스턴스이며,change는 obj가 변경되었는지 여부를 나타내는 bool 값입니다. 변경 사항이 없으면 save 메소드가 호출되지 않을 수 있습니다.
이 기능의 디자인은 상당히 합리적이고 편리하다고 말씀드리고 싶습니다.