>  Q&A  >  본문

python - 如何理解django类里的方法

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中文网2741일 전190

모든 응답(2)나는 대답할 것이다

  • 怪我咯

    怪我咯2017-04-17 17:47:32

    방금 save_model이 호출되는 소스 코드를 검색했는데 모두 다음 매개변수를 포함하고 있습니다.
    예를 들어 예제 1과 예제 2

    회신하다
    0
  • 怪我咯

    怪我咯2017-04-17 17:47:32

    모델을 저장할 때 호출되는 메소드인데, 이 디자인의 목적은 무엇인가요?

    답은 다음과 같습니다. 저장 전이나 후에 일부 작업을 쉽게 수행할 수 있습니다. 예를 들어 게시한 코드에서 저장 시 보안을 설정하고
    저장 비즈니스를 만듭니다. 논리는 매우 간단합니다. 구현하기 쉽습니다.
    obj는 저장된 객체이고, form은 ModelForm 인스턴스이며,change는 obj가 변경되었는지 여부를 나타내는 bool 값입니다. 변경 사항이 없으면 save 메소드가 호출되지 않을 수 있습니다.

    이 기능의 디자인은 상당히 합리적이고 편리하다고 말씀드리고 싶습니다.

    회신하다
    0
  • 취소회신하다