我有一个使用Django和TastyPie构建的REST API。我的目标是在新数据发布到特定模型时将任务添加到我的作业队列中。Django TastyPie,如何使用ManyToMany字段在POST后触发操作?
我打算进入post_save,然后触发,但是模型包含ManyToMany关系,所以post_save在m2m关系更新之前被触发,并且挂接到m2m_changed信号似乎很混乱。我得到了多个信号事件,我的代码需要在每个事件之后检查实例,并尝试确定是否准备好触发事件。 ManyToMany字段中的某些字段可能为空,因此,当我收到m2m_changed信号时,我不确定是否已完成保存。
有没有正确的方法来做到这一点? TastyPie是否允许我钩入POST事件并最终做些什么?我发现的所有事情都指向了post_save事件来做到这一点。
当给定模型实例的所有m2m更新完成时,Django是否有办法指示我?
我发现了一个稍微不愉快的方法,通过覆盖保存所有模型后调用的tastypie create_response()方法来实现此目的。我仍然不喜欢它。 – 2013-04-11 18:09:16
我也尝试使用wrap_view,但这需要我重新解析响应的内容以获取刚创建的对象的ID。看起来效率很低。 – 2013-04-11 18:25:13