2014-02-27 46 views
1

我不知道如果我從模型方法內部更改模型,我應該叫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來堅持更改,並且清楚記錄這是該方法的行爲,則需要並且正確。