#django #django-models
#django #django-models
Вопрос:
Итак, скажем, у меня есть Klass
в качестве модели Django.
k = Klass.objects.get(id=1)
k.attr1 = k.attr1
k.attr2 = k.attr2
...
k.save()
Если предположить, что все значения одинаковы, будет ли ORM Django генерировать вызов SQL?
(Мое приложение выполняет пакетную обработку некоторых моделей в отложенном задании. Он устанавливает их все из CSV, и если это одинаковые значения, он просто сохраняет в данный момент. Я просто хочу знать, должен ли я тратить время на работу с каким-либо механизмом хэширования или логикой, чтобы определить, совпадают ли они)
Ответ №1:
Почему вы не попробовали это в командной строке? Используйте django.db.connection.queries
для перечисления всех операций с БД, которые были выполнены в этом сеансе.
Если вы это сделаете, вы увидите, что это действительно генерирует попадание в db. Фактически, вам даже не нужно устанавливать какие-либо атрибуты — достаточно просто вызвать save()
только что загруженный экземпляр модели. Экземпляры модели Django не имеют никакого понятия «загрязненности».