Add detailed_object_repr JSONField to logentry model

This commit is contained in:
Ann Paul 2015-04-16 11:33:59 -07:00
parent bee1f08f58
commit 6a7908f2ca

View file

@ -6,6 +6,8 @@ from django.contrib.contenttypes.models import ContentType
from django.db import models
from django.utils.translation import ugettext_lazy as _
from jsonfield import JSONField
class LogEntryManager(models.Manager):
"""
@ -28,6 +30,10 @@ class LogEntryManager(models.Manager):
if isinstance(pk, (int, long)):
kwargs.setdefault('object_id', pk)
get_detailed_object_repr = getattr(instance, 'get_detailed_object_repr', None)
if callable(get_detailed_object_repr):
kwargs.setdefault('detailed_object_repr', instance.get_detailed_object_repr())
# Delete log entries with the same pk as a newly created model. This should only be necessary when an pk is
# used twice.
if kwargs.get('action', None) is LogEntry.Action.CREATE:
@ -110,6 +116,7 @@ class LogEntry(models.Model):
changes = models.TextField(blank=True, verbose_name=_("change message"))
actor = models.ForeignKey(settings.AUTH_USER_MODEL, blank=True, null=True, on_delete=models.SET_NULL, related_name='+', verbose_name=_("actor"))
timestamp = models.DateTimeField(auto_now_add=True, verbose_name=_("timestamp"))
detailed_object_repr = JSONField(blank=True, null=True)
objects = LogEntryManager()