mirror of
https://github.com/jazzband/django-auditlog.git
synced 2026-04-28 18:54:44 +00:00
Add detailed_object_repr JSONField to logentry model
This commit is contained in:
parent
bee1f08f58
commit
6a7908f2ca
1 changed files with 7 additions and 0 deletions
|
|
@ -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()
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue