在创建对象后,我无法防止post_save信号多次触发。
我的信号定义如下:
./gradlew -q hello
信号在orders / apps.py
中导入Message is
value: null
在1 Order.create:
之后打印时将kwargs传递给信号Message is
value: Hi from Gradle
显然在单个创建中,有一个post_save信号在创建args时触发:True和1 with created:False。我不认为问题是信号可能被多次导入,因为我提供了一个dispatch_uid,并且在同一个文件中定义的post_delete信号在一次删除时不会被多次触发。
任何人都可以告诉我为什么会这样吗?感谢
答案 0 :(得分:0)
您的信号post_save不是问题,多次保存触发它。
从我所看到的,您正在进行2次保存,其中创建了第一次创建的对象,而第二次更新的对象在没有任何字段更改的情况下进行了更新。
创建
布尔值;如果创建了新记录,则为True。
update_fields
要传递给Model.save()的更新字段集, 如果update_fields未传递给save(),则为None。