【问题标题】:django signals - getting it rightdjango 信号 - 让它正确
【发布时间】:2015-01-28 07:35:32
【问题描述】:

这是我第一次使用信号,我将它们用作学习曲线,但我希望确保我做对了。

我正在将 post_save 信号用于模型(出于所有意图和目的,我们将其称为 ModelA),在保存后我希望它发送信号以将数据发送到我的 api 应用程序。

signals.py

def apiCall_Update(sender, **kwargs):
    ...

post_save.connect(apiCall_Update, sender=ModelA, dispatch_uid='Update')

我正在使用 UpdateView 来更新此实例中的模型

class UpdateModelA(UpdateView):
    model = ModelA
    slug_field = 'name'
    slug_url_kwarg = 'name'
    template_name_suffix = "_update_form.html"
    success_url = reverse_lazy('modela_manager')

ModelA 在运行此视图时更新得非常好,但是我没有触发 post_save 信号。我可能在这里手足无措,做着完全错误的事情。我尝试了各种资源,包括文档和其他堆栈,看看我是否可以自己调试,但我正在做我一直在阅读的所有内容,而且我对正确的方法一无所知。

【问题讨论】:

  • 您能谈谈一些调试尝试吗?您是否已验证 apiCall_Update 没有运行?如果有,怎么做?
  • 我的主要问题是,我不是 100% 知道如何调试这种东西,如果你能提供一些指导,我会很乐意尝试进一步调试它。我提到我已经阅读了其他资源以查看是否可以调试它,但尚未找到足以指导我的任何内容。

标签: python django django-signals


【解决方案1】:

经过进一步调查,似乎纯粹是因为信号没有加载。

通过将信号导入与它们相关的 models.py 中,我实现了我想要的结果。

from myapp import signals

这适用于信号在它们自己的文件中的情况(我将它们写入到应用程序文件夹中的 signals.py 中)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-18
    • 1970-01-01
    • 1970-01-01
    • 2018-05-27
    • 2011-02-07
    • 1970-01-01
    • 1970-01-01
    • 2011-10-14
    相关资源
    最近更新 更多