自動化無しに生活無し

WEBとかAIとかLinux関係をひたすら書く備忘録系ブログ

【Django】管理サイトで保存した時、何か処理(メール送信など)を実行して欲しい時【saveメソッドオーバーライドは通用しない】

thumbnail

Djangoの管理サイトでモデルの保存をした時、何か実行して欲しいものがあれば、saveメソッドのオーバーライドでは通用しない。

Adminクラスにsave_modelメソッドがあるので、それをオーバーライドして使う。

class MyAdminView(admin.ModelAdmin):
    def save_model(self, request, obj, form, change):
        super(MyAdminView, self).save_model(request, obj, form, change)

用途

管理サイトから作成・編集をして、保存した時に発動するので、以下の用途が考えられる。

  • 通販サイトにて配送処理完了のブーリアン値を変更、それを判定して配送処理完了メールを送る
  • 動画サイトにて、違反動画のブーリアン値を変更、それを判定して投稿者に警告メールを送る
スポンサーリンク

シェアボタン

Twitter LINEで送る Facebook はてなブログ