ModelAdminを適当に継承
from django.contrib import admin
class BaseAdmin(admin.ModelAdmin):
def construct_change_message(self, request, form, formsets):
change_message = []
if form.changed_data:
for name in form.changed_data:
new_data = form.cleaned_data[name]
old_data = form.initial[name]
change_message.append(u"{}: {} -> {}".format(name, old_data, new_data))
if formsets:
for formset in formsets:
for added_object in formset.new_objects:
change_message.append(_('Added %(name)s "%(object)s".')
% {'name': force_text(added_object._meta.verbose_name),
'object': force_text(added_object)})
for changed_object, changed_fields in formset.changed_objects:
change_message.append(_('Changed %(list)s for %(name)s "%(object)s".')
% {'list': get_text_list(changed_fields, _('and')),
'name': force_text(changed_object._meta.verbose_name),
'object': force_text(changed_object)})
for deleted_object in formset.deleted_objects:
change_message.append(_('Deleted %(name)s "%(object)s".')
% {'name': force_text(deleted_object._meta.verbose_name),
'object': force_text(deleted_object)})
change_message = ', '.join(change_message)
return change_message or _('No fields changed.')
使うとき
from hoge.models import Hoge
class HogeAdmin(BaseAdmin):
pass
admin.site.register(Hoge, HogeAdmin)