Ok, então eu mudei a importação para
views.py
(ou models.py
e enquanto estava sendo importado apenas uma vez, estava sendo chamado duas vezes. O problema era que o
post_save
signal estava sendo chamado quando o objeto foi criado e salvo. Não tenho ideia do porquê, então adicionei uma solução alternativa que agora funciona 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
Editar:
post_save
estava sendo chamado duas vezes porque usei .create(...)
que é equivalente a __init__(...)
e .save()
. Conclusão
dispatch_uid
funciona e fazer importações únicas ainda é uma boa prática.