Ok jadi saya memindahkan impor ke views.py
(atau models.py
dan ketika diimpor hanya sekali, itu dipanggil dua kali.
Masalahnya adalah post_save
sinyal dipanggil saat objek dibuat serta disimpan. Saya tidak tahu mengapa, jadi saya menambahkan solusi yang sekarang berfungsi
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
Sunting:
post_save
dipanggil dua kali karena saya menggunakan .create(...)
yang setara dengan __init__(...)
dan .save()
.
Kesimpulan
dispatch_uid
berhasil dan melakukan impor tunggal masih merupakan praktik yang baik.