#django #django-models
#django #django-модели
Вопрос:
Итак, у меня есть такая функция, которая массово обновляет много-много полей для parent_object заданными данными. Проблема в том, что не каждый объект, указанный в data
параметре, изменит свою позицию. Итак, что произойдет, если я скажу django увеличить_обновление значений, позиции которых еще не изменены? Будут ли возникать какие-либо исключения? Например, пусть список объектов во многих-многих полях будет:
[id=1'blue', id=2'green', id=3'yellow']
Если я скажу django обновить эти значения, например
[id=1 update to 'blue', id=2 update to 'purple', id=3 update to 'magenta']
Здесь id = 1 снова обновляется до неизменного значения, синего цвета.
будут ли возникать какие-либо ошибки?
def overwrite_object_positions(self, data: list, parent_object):
"""
Overwrites object-positions, enclosed
within a transaction. Rolls-back if any error arises.
"""
transaction.set_autocommit(False)
try:
self.get_overwrite_objects(parent_object).bulk_update(data, ['position'])
except Exception as err:
transaction.rollback()
raise ValueError(err)
else:
transaction.commit()
finally:
transaction.set_autocommit(True)
Комментарии:
1. Как вы думаете, почему изменение значения с одного на другое должно приводить к ошибке
2. нет, я имел в виду изменение значения на то же самое
3. например, массовое обновление объектов с помощью списка, где список содержит частично неизмененные объекты. надеюсь, вы поняли, что я значил1