Следующий код находится в сигнале Django, а когда количество копий - «2», следующий код создает 80+ копий, а затем сработает ... Что случилось?Python deepcopy в сигнале post_save?
def internal_signal(sender, instance, signal, created, *args, **kwargs):
for i in range(instance.number_of_copies):
item_copy = deepcopy(instance)
item_copy.id = item_copy.id + 1
item_copy.internal_barcode = "%s"%(item_copy.item_location.location_code)
item_copy.save()
post_save.connect(internal_signal, sender=Inventory)
Thanks.
Редактировать: Duh! Найденный вопрос, вышеупомянутый код был частью post_save операции с сигналом Django, поэтому каждое «сохранение» запускает другой цикл, а затем сбой кучи.
Каков наилучший способ создания объектов 'n' и программно сохранить его в Django?
Спасибо за ответ. Проблема заключалась в том, что этот «deepcopy» был помещен в сигнал post_save, и каждое сохранение объекта clone привело к рекурсии. Поэтому я просто «отключился» от сигнала перед клонированием и «подключил сигнал после операции, и все работает нормально. – lud0h