さて、インポートをviews.pyに移動しました (またはmodels.py インポートされるのは1回だけでしたが、呼び出されるのは2回でした。
問題は、post_save オブジェクトが作成および保存されたときにシグナルが呼び出されていました。理由がわからないので、現在機能する回避策を追加しました
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
編集:
post_save .create(...)を使用したため、2回呼び出されていました これは__init__(...)と同等です および.save() 。
結論
dispatch_uid 動作し、単一のインポートを実行することは依然として良い習慣です。