2015-09-25 6 views
2

Я хочу добавить регистрацию изменений администратора в моем проекте django. Я сделал некоторые, что через LogEntry модели:Журналирование действий администратора Django: как отобразить начальное и конечное значение изменений полей?

from django.contrib.admin.models import LogEntry 

class LogEntryAdmin(admin.ModelAdmin): 
    list_display = ('__str__', 'action_time', 'user', 'content_type', 'object_id', 'object_repr', 'action_flag', 'change_message') 
    list_filter = ('content_type',) 
    search_fields = ['user__username',] 
    date_hierarchy = 'action_time' 

admin.site.register(LogEntry, LogEntryAdmin) 

Это здорово, если бы я изменить некоторые поля объекта в моей базе данных, я могу видеть, запись журнала для этого действия. Но в этой записи журнала я вижу только, что «поле было изменено», и я также хочу увидеть начальное и конечное значение этого поля. Как я могу достичь этой функциональности?

+0

Для меня этот вопрос по-прежнему имеет значение, ответ от @conans не дает пример того, как это можно реализовать. Если есть пакет, который помогает с этим или, например, отрезанным, я также ценю его. –

ответ

0

Вы можете расширить класс LogEntry и добавить настраиваемые поля, а затем использовать pres_save, post_save и т. Д., Чтобы сохранить необходимые записи в пользовательской модели.