管理サイトから編集/追加したいdjangoモデルがあります。モデルには、それぞれがスコアを保持するタグのリストが含まれています。(多対多の関係)。
タグに加えて、管理インターフェースを介してモデルをデータベースにコミットするときにタグスコアを計算する別のフィールドをモデルに含めたいと思います。
したがって、基本的には、コミット後にイベントが必要になります。これにより、すべてのモデルタグを調べて、スコアを計算できます。
このような方法で管理インターフェースを拡張することは可能ですか?
ModelAdmin.save_formset
メインモデルと m2m リレーションの両方が保存された後に呼び出されるため、おそらくオーバーライドするのが最善の策です。
class MyModelAdmin(admin.ModelAdmin):
def save_formset(self, *args, **kwargs):
super(MyModelAdmin, self).save_formset(*args, **kwargs)
# do your calculation here
最良の方法は、シグナルを使用することです。この場合、 m2m_changed シグナルを使用できます。