Ok vì vậy tôi đã chuyển nhập sang views.py
(hoặc models.py
và trong khi nó chỉ được nhập một lần, nó đã được gọi hai lần.
Vấn đề là post_save
tín hiệu được gọi khi đối tượng được tạo cũng như được lưu. Tôi không biết tại sao nên tôi đã thêm một giải pháp hiện đang hoạt động
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
Chỉnh sửa:
post_save
bị gọi hai lần vì tôi đã sử dụng .create(...)
tương đương với __init__(...)
và .save()
.
Kết luận
dispatch_uid
hoạt động hiệu quả và thực hiện nhập đơn lẻ vẫn là một phương pháp hay.