Ok, så jag flyttade importen till views.py (eller models.py och medan det bara importerades en gång, anropades det två gånger.
Problemet var att post_save signalen anropades när objektet skapades och sparades. Jag har ingen aning om varför så jag lade till en lösning som nu fungerar
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
Redigera:
post_save blev uppringd två gånger eftersom jag använde .create(...) vilket motsvarar __init__(...) och .save() .
Slutsats
dispatch_uid fungerar och att göra enstaka importer är fortfarande en bra praxis.