我有一个这样的函数 - 有没有办法包装这个函数,以便将两个保存合并为一个? 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
提交
取消