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.