ठीक है, इसलिए मैंने आयात को views.py
में स्थानांतरित कर दिया (या models.py
और जबकि इसे केवल एक बार आयात किया जा रहा था, इसे दो बार कॉल किया जा रहा था।
समस्या यह थी कि post_save
जब ऑब्जेक्ट बनाया गया था और साथ ही सहेजा गया था तो सिग्नल को कॉल किया जा रहा था। मुझे नहीं पता कि क्यों मैंने एक वर्कअराउंड जोड़ा जो अब काम करता है
created = False
#Workaround to signal being emitted twice on create and save
if 'created' in kwargs:
if kwargs['created']:
created=True
#If signal is from object creation, return
if created:
return
संपादित करें:
post_save
दो बार कॉल किया जा रहा था क्योंकि मैंने .create(...)
. का उपयोग किया था जो __init__(...)
. के बराबर है और .save()
।
निष्कर्ष
dispatch_uid
काम करता है और एकल आयात करना अभी भी एक अच्छा अभ्यास है।