首页 > 解决方案 > 如何在视图中禁用 Django 信号?

问题描述

我正在编写一个迁移脚本,我不希望触发信号。如何断开信号与视图的连接?

视图.py

pre_save.disconnect( pre_save_callback, sender=MyModel)

错误:

NameError: name 'pre_save_callback' is not defined

信号处理程序:

@receiver(pre_save,sender=MyModel)
def pre_save_callback(sender, instance, *args, **kwargs):
    '''
    do some stuff
    '''
    print('running pre_save')

固定的!更新了视图代码

缺少的部分是将信号处理函数导入视图并将其用作 pre_save.disconnect() 中的参数。

起初,我认为只需将函数名称作为字符串传递,它就会自动查找函数。希望这可以帮助某人。

视图.py

from app.signals.handler import pre_save_callback
pre_save.disconnect( pre_save_callback, sender=MyModel)

标签: djangodjango-signals

解决方案


推荐阅读