mirror of
https://github.com/netbox-community/netbox.git
synced 2024-05-10 07:54:54 +00:00
42 lines
1.1 KiB
Python
42 lines
1.1 KiB
Python
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)
|
|
)
|