我有一個這樣的函數 - 有沒有辦法包裝這個函數,以便將兩個保存合并為一個? def foobar(self, created_at=None): changed = False if created_at: changed = True self. created_at = created_at self.save() if self.active: changed = True self.active = False self.save() return self我不取消縮進的原因self.save()是為了避免updated_at在沒有發生更改的情況下更新對象上的字段。
1 回答

慕妹3242003
TA貢獻1824條經驗 獲得超6個贊
self.save()僅當changedisTrue位于子句末尾時,您才能執行 a if:
def foobar(self, created_at=None):
changed = False
if created_at:
changed = True
self.created_at = created_at
if self.active:
changed = True
self.active = False
if changed:
self.save()
return self
因此,只有當兩個子句之一if觸發時,它才會設置changed為True。僅當changed設置為時True,我們才保存對象。crated_at因此,如果和都是真實的,我們在這里避免了與數據庫的額外往返self.active。
添加回答
舉報
0/150
提交
取消