【问题标题】:Django "after_db_save" signalDjango“after_db_save”信号
【发布时间】:2022-06-20 01:55:27
【问题描述】:

根据文档,post_save 信号是“在 save() 方法的 end 发送的”。但不是之后。

情景

模型 Apost_save 信号被用于调用另一个服务,该服务创建一个模型 B,其字段 a_id 是一个外部A 模型的关键。但服务收到错误消息,指出模型 A 的 PK 不存在。

那么在实例保存到数据库后会触发django信号吗?

如果不是,我应该如何实现这个功能?我已经阅读了有关使用 transaction.on_commit() 的信息,但我将如何在信号中使用它?

【问题讨论】:

    标签: django


    【解决方案1】:

    我无法真正让事务工作,但通过将任务卸载到任务队列(在我的情况下为huey)解决了这个问题。只需创建一个函数并用@db_task 装饰它,然后在post_save 信号中调用它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-22
      • 1970-01-01
      • 1970-01-01
      • 2015-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-29
      相关资源
      最近更新 更多