2014-02-27 2 views
1

모델 메서드 내부에서 모델을 변경하면 shoudl save() 호출하고 궁금해?Django - 모델 메서드에서 자체 저장 호출

예 모델 :이 같은

class Case(Model): 

    some_number = DecimalField(max_digits=10, decimal_places=2, default=0.0) 


    def add(self, amount): 
     self.some_number += amount 
     self.save(update_fields=['some_number']) # needed? 

를 호출 :

case = Case(some_number) 
case.add(10) 

이 필요한가요? 옳은? 그 점에 대해 기꺼이 조언 해 드리겠습니다.

+1

올바른 방법이 없습니다. 그것은 당신이 당신의 모델을 어떻게 사용하는지에 달려 있습니다. 호출자가 나중에 전체 인스턴스를 저장할 것으로 예상 할 수없는 경우 모델 메서드 내에 업데이트 된 필드를 저장해야하지만이 조언조차도 모든 시나리오에 적용 할 수는 없습니다. – lanzz

답변

1

"필요"또는 "정확함"에 대해 무슨 뜻인지 몰라요. add으로 즉시 변경 사항을 유지하고이 메소드의 동작임을 명확하게 기록하려면 필요하고 정확합니다.

관련 문제