5

Django と TastyPie を使用して構築された REST API があります。私の目標は、新しいデータが特定のモデルに POST されたときに、ジョブ キューにタスクを追加することです。

その後、post_save とトリガーにフックするつもりでしたが、モデルには ManyToMany 関係が含まれているため、m2m 関係が更新される前に post_save がトリガーされ、m2m_changed シグナルにフックするのは面倒です。複数のシグナル イベントが発生したため、コードで各イベントの後にインスタンスをチェックし、イベントをトリガーする準備ができているかどうかを判断する必要があります。ManyToMany フィールドの一部は Null になる可能性があるため、m2m_changed シグナルを受け取ったときに、保存が完了したかどうかはわかりません。

これを行う正しい方法はありますか?TastyPie では、POST イベントにフックして、最後に何かを行うことができますか? 私が見つけたすべてのものは、これを行うための post_save イベントを指しています。

特定のモデル インスタンスのすべての m2m 更新が完了したときに Django に通知する方法はありますか?

4

2 に答える 2

6

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
于 2013-04-12T06:38:05.530 に答える