Edited at

Djnago2系 adminでDBの内容を更新した後になにか処理を行いたい

More than 1 year has passed since last update.


やりたいこと

Djangoのデフォルトでついている管理画面上で、DBにデータを登録するフォームからデータをDBに登録後、

なんかしらの処理をしたい。


結論

# Adminのモデル

from django.contrib import admin

# 管理画面上に表示したいDBフォーム
from myapp.models import ExampleModelなどのクラス名, クラス名, クラス名, ……

# DBに登録をAdminフォーム上から行った際に、処理を走らせるためのもの
from django.db.models.signals import post_save
from django.dispatch import receiver

# 登録処理後のタスク
@receiver(post_save, sender=ExampleModelなどのDBのクラス名)
def my_handler(sender, instance, **kwargs):
# 引数の「instance」に、DBに書き込んだ内容が入っている
# 行いたい処理
print('とりあえずコンソールに文字表示')


参考

https://docs.djangoproject.com/en/2.0/ref/signals/#post-save