Dobře, přesunul jsem import do views.py
(nebo models.py
a zatímco byl importován pouze jednou, byl volán dvakrát.
Problém byl v tom, že post_save
signál byl volán, když byl objekt vytvořen a také uložen. Nevím proč, tak jsem přidal řešení, které nyní funguje
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
Upravit:
post_save
byl volán dvakrát, protože jsem použil .create(...)
což je ekvivalentní __init__(...)
a .save()
.
Závěr
dispatch_uid
funguje a provádění jednotlivých importů je stále dobrou praxí.