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

我有一个这样的函数 - 有没有办法包装这个函数,以便将两个保存合并为一个?


    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在没有发生更改的情况下更新对象上的字段。


白衣非少年
浏览 70回答 1
1回答

慕妹3242003

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。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python