ジャンゴ(>バージョン1.2)は、管理メッセージのメッセージフレームワークを使用しています。そのインタフェースを使用してメッセージを追加できます。ここでは例です:
from django.contrib import messages
class SomeModelAdmin(admin.ModelAdmin):
# your normal ModelAdmin stuff goes here
def save_model(self, request, obj, form, change):
# add an additional message
messages.info(request, "Extra message here.")
super(SomeModelAdmin, self).save_model(request, obj, form, change)
保存されているオブジェクトへの変更を検出するには、この方法は、現在のデータベース内のバージョンに渡されるModelAdminののsave_model methodをオーバーライドして、オブジェクトを比較するべきです。インラインの場合にこれを行うには、save_formset methodを上書きできます。それはまだ正常な成功のメッセージだかのように、まだ表示さ
class SomeModelAdmin(admin.ModelAdmin):
# your normal ModelAdmin stuff goes here
def save_formset(self, request, form, formset, change):
if not change:
formset.save()
else:
instances = formset.save(commit=False)
for instance in instances:
try:
# if you've got multiple types of inlines
# make sure your fetching from the
# appropriate model type here
old_object = SomeOtherModel.get(id=instance.id)
except SomeOtherModel.DoesNotExist:
continue
if instance.field_x != old_object.field_x:
messages.info(request, "Something Changed")
instance.save()
formset.save_m2m()
だけで簡単な質問、message.warning(...、「...」):可能なアプローチは、(未テストコード)のようになります。それは例外エラーを起こしているようにそれを赤にする方法はありますか? – chiurox
try message.error( ''、 '') – zlosim