@property
def policy_escape(self):
if self.date - datetime.date.today:
self.status = 2
self.save()
def save(self, *args, **kwargs):
self.counter = counter 1
我有這個政策邏輯。對于創建的每個策略,我想增加一個屬性 nnumber(這不完全是我的情況)。
我希望保單日期是今天的日期來更改該保單的狀態。但是當我改變它時,策略計數器正在增加。
有人可以幫我只更新狀態而不更新其他屬性嗎?
提前致謝
uj5u.com熱心網友回復:
你可以限制update_fields:
@property
def policy_escape(self):
if self.date - datetime.date.today:
self.status = 2
self.save(update_fields=("status",))
但是,特定的 Python 物件仍將具有更改的計數器。因此,您必須避免save對該物件進行任何其他呼叫。
您可以改為傳遞自定義kwarg:
@property
def policy_escape(self):
if self.date - datetime.date.today:
self.status = 2
self.save(update_counter=False)
def save(self, *args, **kwargs, update_counter=True):
if update_counter:
self.counter = 1
# ...
super().save(*args, **kwargs):
另一種避免save被呼叫的方法是使用Queryset.update:
@property
def policy_escape(self):
if self.date - datetime.date.today:
self.__class__.objects.filter(pk=self.pk).update(status=2)
# self.status = 2 # if the current object should reflect that change
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/350745.html
