为了账号安全,请及时绑定邮箱和手机立即绑定

Django:将多个保存合并到一个数据库操作中

Django:将多个保存合并到一个数据库操作中

白衣非少年 2023-07-11 16:24:22
我有一个这样的函数 - 有没有办法包装这个函数,以便将两个保存合并为一个?    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。


查看完整回答
反对 回复 2023-07-11
  • 1 回答
  • 0 关注
  • 55 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信