1
以下代碼位於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)
謝謝。
編輯:杜!發現這個問題,上面的代碼是Django信號的post_save操作的一部分,所以每個'save'都會觸發另一個循環,然後堆崩潰。
創建'n'對象並以編程方式將其保存在Django中的最佳方法是什麼?
感謝您的回答。問題是這個'deepcopy'被放置在post_save信號中,並且克隆對象的每次保存都會導致遞歸。所以我簡單地在克隆前斷開信號並在操作後連接信號,一切正常。 – lud0h 2012-02-02 11:11:23