やりたいこと
Djangoのデフォルトで使える管理画面(admin?)で、
DBへのデータ追加・保存・削除フォームの保存後、別クラスのメソッドを実行したい。
やったこと
Stack Overflowの記事によると、save_model
をオーバーライドすれば良いと書かれていたので、
admin.pyにて、以下のコードを追加しました。
python
1from django.contrib import admin 2from myapp.models import モデル名 3 4class モデル名Admin(admin.ModelAdmin): 5 Model = モデル名 6 7 def save_model(self, request, obj, form, change): 8 obj.user = request.user 9 print('hello') 10 super().save_model(request, obj, form, change) 11
しかし、python manage.py runserver
を動かしているコンソールには「hello」が表示されません。
Djnagoは最近使い始めたところなので、まだどのような処理があるのかの全貌を把握していないので申し訳ないのですが、
save_model
はこの使い方ではないのでしょうか?
ご存知の方がいらっしゃいましたら、ご教示頂けますと幸いです。
環境
Django 2.0.6
Python 3.6.5
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/07/25 09:14