Django 如何防止post_save信号从嵌套外键字段触发?

Django 如何防止post_save信号从嵌套外键字段触发?,django,django-signals,Django,Django Signals,Django模型正在发送两个post_save信号,我不知道如何处理它们 我想在保存一个实例时触发一个post_save信号,该实例有一个外键字段,同时也在保存 这个解决方案:看起来很简单,但我的外键字段必须是一个全新的实例,这意味着更新方法将无法工作 这是我的模型 event = Event( start_date=template_fields['start_date'], end_date=template_fields['e

Django模型正在发送两个post_save信号,我不知道如何处理它们

我想在保存一个实例时触发一个post_save信号,该实例有一个外键字段,同时也在保存

这个解决方案:看起来很简单,但我的外键字段必须是一个全新的实例,这意味着更新方法将无法工作

这是我的模型

event = Event(
                start_date=template_fields['start_date'],
                end_date=template_fields['end_date'],
                event_title=f'Stock Count Reminder',
                description=f'Stock reminder count on auto scheduling',
                event_type=template_fields['event_type']
            )
event.save()
stock_tempalate.schedule_time = event
stock_tempalate.created_by = info.context.user
stock_tempalate.unique = True
stock_tempalate.save()
我只需要stock_template.save()来触发post_save信号,而不需要event.save()

这是我的信号:

@receiver(post_save, sender=StockCountTemplate)
def start_job(sender, instance, **kwargs):
    if 'created' in kwargs:
        if not kwargs['created'] and instance.unique:
            start_schedule_templates()
在信号的回调中放置调试器表明我接收到两个信号。第一个没有股票模板的字段值,而第二个有

在回调内执行打印(kwargs)将打印以下内容:

第一个触发器:

{'signal': <django.db.models.signals.ModelSignal object at 0x10d00fc50>, 'created': True, 'update_fields': None, 'raw': False, 'using': 'default'}
[]
{'signal':,'created':True,'update_fields':None,'raw':False,'using':'default'}
[]
第二个触发点是我感兴趣的:

{'signal': <django.db.models.signals.ModelSignal object at 0x10d00fc50>, 'created': False, 'update_fields': None, 'raw': False, 'using': 'default'}
[1]
{'signal':,'created':False,'update_fields':None,'raw':False,'using':'default'}
[1]
有没有办法禁用第一个信号