关于 save(update_fields) 方法细微差别的问题,Django

question about save(update_fields) method nuances , Django

快速提问。无法在文档中找到它,或者有矛盾的信息。

方法:

save(update_fields = somefields)

工作原理与方法相同:

SomeModel.objects.update(somefields here)

就这两种方法而言,这两种方法都适用于数据库级别,而不会在模型中触发 SAVE 方法?

UPDATE 在数据库级别上工作,很清楚

保存呢(update_fields = somefields)???

谢谢你,很抱歉提出了相当抽象的问题


    def delete(self, using=None, keep_parents=False):
        self.show = False
        self.change_date = datetime.datetime.now()
        self.save(update_fields=["show", "change_date"]) # will it trigger save() method in the model or not???

虽然使用 save(update_fields=[.....]) 在数据库级别强制更新查询,但它比 update() 方法慢,因为额外调用 super.save() 是在那之前制作的。

super.save(*args, **kwargs)

不要使用带有 update_fields 的保存,而是尝试使用类似的东西。

YourModel.objects.filter(pk=self.pk).update(show=False, change_date=datetime.datetime.now())