| 1234567891011121314151617181920212223242526272829303132333435363738394041 |
- from django.db import models
- from extras.models import ObjectChange
- from utilities.utils import serialize_object
- __all__ = (
- 'ChangeLoggedModel',
- )
- class ChangeLoggedModel(models.Model):
- """
- An abstract model which adds fields to store the creation and last-updated times for an object. Both fields can be
- null to facilitate adding these fields to existing instances via a database migration.
- """
- created = models.DateField(
- auto_now_add=True,
- blank=True,
- null=True
- )
- last_updated = models.DateTimeField(
- auto_now=True,
- blank=True,
- null=True
- )
- class Meta:
- abstract = True
- def to_objectchange(self, action):
- """
- Return a new ObjectChange representing a change made to this object. This will typically be called automatically
- by extras.middleware.ChangeLoggingMiddleware.
- """
- return ObjectChange(
- changed_object=self,
- object_repr=str(self),
- action=action,
- object_data=serialize_object(self)
- )
|