快速提问。无法在文档中找到它,或者存在矛盾的信息。
执行方法:
save(update_fields = somefields)
以与方法相同的原理工作:
SomeModel.objects.update(somefields here)
这两种方法都可以在数据库级别工作而不触发模型中的SAVE方法吗?
很明显,更新是在数据库级别上进行的
保存(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???
答案 0 :(得分:1)
虽然使用 save(update_fields=[.....]) 在数据库级别强制更新查询,它比 update() 方法慢,因为在此之前对 super.save() 进行了额外调用。
super.save(*args, **kwargs)
不要将 save 与 update_fields 一起使用,而是尝试使用类似的方法。
YourModel.objects.filter(pk=self.pk).update(show=False, change_date=datetime.datetime.now())