我有一个使用Django和TastyPie构建的REST API.我的目标是在将新数据发布到特定模型时将任务添加到我的作业队列中.
我打算挂钩到post_save然后触发,但模型包含ManyToMany关系,因此在m2m关系更新之前触发post_save并挂钩到m2m_changed信号似乎很乱.我收到多个信号事件,我的代码需要在每个事件之后检查实例并尝试确定它是否准备好触发事件.一些ManyToMany字段可以是Null,所以当我得到m2m_changed信号时,我真的不知道它是否已经完成保存.
有没有正确的方法来做到这一点?TastyPie允许我挂钩POST事件并在最后做一些事情吗?我发现的所有东西都指向post_save事件来做这件事.
当完成给定模型实例的所有m2m更新时,Django是否有办法发信号通知我?
如果您正在使用POST,那么obj_update()似乎并不适合我.工作的obj_create()用途如下:
class Resource(ModelResource):
def obj_create(self,bundle,**kwargs):
bundle = super(Resource,self).obj_create(bundle,**kwargs)
# Add code here
return bundle
Run Code Online (Sandbox Code Playgroud)
需要注意的一点是,request不包括在内.我试过了,它给了我一个错误.
您应该能够覆盖obj_update方法
class Resource(ModelResource):
def obj_update(self, bundle, request, **kwargs):
bundle = super(Resource, self).obj_update(bundle, **kwargs)
# queue your task here
return bundle
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1449 次 |
| 最近记录: |