如果值不变,Django是否在保存时生成DB调用?

如果值不变,Django是否在保存时生成DB调用?,django,django-models,Django,Django Models,假设我有Klass作为Django模型 k = Klass.objects.get(id=1) k.attr1 = k.attr1 k.attr2 = k.attr2 ... k.save() 假设这些值都相同,Django的ORM会生成SQL调用吗 (我的应用程序正在批处理延迟作业中的一些模型。它从CSV中设置所有模型,如果它们是相同的值,它将立即保存。我只是想知道我是否应该花时间研究一些散列机制或逻辑,以检测它们是否相同)为什么不在shell中尝试?使用django.db.connec

假设我有
Klass
作为Django模型

k = Klass.objects.get(id=1)

k.attr1 = k.attr1
k.attr2 = k.attr2
...

k.save()
假设这些值都相同,Django的ORM会生成SQL调用吗


(我的应用程序正在批处理延迟作业中的一些模型。它从CSV中设置所有模型,如果它们是相同的值,它将立即保存。我只是想知道我是否应该花时间研究一些散列机制或逻辑,以检测它们是否相同)

为什么不在shell中尝试?使用
django.db.connection.querys
列出在该会话中完成的所有db操作

如果您这样做,您将看到它确实生成了一个db命中。事实上,您甚至不需要设置任何属性——只要在新加载的模型实例上调用
save()
,就可以了。Django模型实例没有任何“肮脏”的概念