Ok, also habe ich den Import nach views.py
verschoben (oder models.py
und während es nur einmal importiert wurde, wurde es zweimal aufgerufen.
Das Problem war, dass der post_save
Signal wurde aufgerufen, als das Objekt erstellt und gespeichert wurde. Ich habe keine Ahnung warum, also habe ich eine Problemumgehung hinzugefügt, die jetzt funktioniert
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
Bearbeiten:
post_save
wurde zweimal aufgerufen, weil ich .create(...)
verwendet habe was äquivalent zu __init__(...)
ist und .save()
.
Fazit
dispatch_uid
funktioniert und einzelne Importe sind immer noch eine gute Praxis.