我有一个关于 dispatch_uid
用于信号的问题。
目前,我通过简单地添加 if not instance.order_reference
来防止信号的多次使用。我现在想知道 dispatch_uid
是否具有相同的功能,我可以删除“if not
”子句。
信号.py
def reserveditem_create_order_reference(sender, instance, **kwargs):
if not instance.order_reference:
instance.order_reference = unique_order_reference_generator()
app.py
class OrdersConfig(AppConfig):
name = 'orders'
def ready(self):
#Pre save signal for ReservedItem model
reserved_model = self.get_model('ReservedItem')
pre_save.connect(
reserveditem_create_order_reference,
sender=reserved_model,
dispatch_uid="my_unique_identifier"
)
最佳答案
正如 the docs ,
所以是的,删除 if
子句并设置一个唯一的信号接收器 dispatch_uid
将阻止您的处理程序被多次连接(以及之后被调用)。
关于Django 信号 dispatch_uid,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50880893/