【问题标题】:Can I manually trigger signals in Django?我可以在 Django 中手动触发信号吗?
【发布时间】:2015-03-15 06:42:09
【问题描述】:

我在我的 Django 应用程序中编写了一些信号,这些信号应该在创建或修改特定模型实例时发送电子邮件,但信号接收器函数似乎没有响应;无论如何,我没有收到任何电子邮件(尽管我已经检查过我可以使用我当前的配置发送电子邮件)。

无论如何;我想知道,是否可以手动发送 post_save 信号以进行调试,而不是尝试通过每次创建新模型实例来触发它?谢谢!

【问题讨论】:

    标签: python django signals django-signals


    【解决方案1】:

    是的。见the documentation

    from django.db.models.signals import post_save
    
    instance = MyModel(field='qwerty')
    post_save.send(MyModel, instance=instance, created=True)
    

    【讨论】:

    • 啊!我读了几次关于信号的 Django 文档,但不知何故我并没有意识到这一点——回想起来似乎很明显。谢谢! :)
    • 我不能只执行 instance.save() 来触发它吗??
    • @VaibhavVishal 这将导致不必要、缓慢且昂贵的数据库往返
    • 这正是我想要的。
    猜你喜欢
    • 2014-12-26
    • 2019-04-07
    • 2013-10-05
    • 1970-01-01
    • 2013-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多