0

私はmongodbバックエンドでDjango非relバージョンを使用しています。モデルインスタンスで発生する変更を追跡することに興味があります。たとえば、誰かがモデルインスタンスを作成/編集または削除した場合などです。バックエンドdbはmongoであるため、モデルにはそれぞれのコレクション/dbに関連付けられた「_id」フィールドがあります。

ここで、このmodif操作が行われたこの「_id」フィールドを抽出したいと思います。この「_id」フィールドを別のデータベースに書き込んで、誰かがそこからそれを取得して、どのオブジェクトが更新されたかを知ることができるようにするという考え方です。

私のモデルはすべてそこから派生しているので、 Djangoの「models.Model」からsave()メソッドをオーバーライドすることを考えました。ただし、mongo-insertがまだ実行されていないため、mongo"_id"フィールドは明らかにそこに存在しません。

保存操作がmongoで実行された後に呼び出すことができる疑似post-save()メソッドの可能性はありますか?django / django-toolbox / pymongoはそのような組み合わせを提供できますか?

4

1 に答える 1

0

Django モデルを深く掘り下げた後、問題を解決することができました。save()メソッドは、 save_base()メソッドを呼び出します。このメソッドは、返された結果 (mongo の場合は id) をself.idに保存します。この_idフィールドは、モデルのsave()メソッドをオーバーライドすることで選択できます

于 2012-10-23T13:24:09.413 に答える