123456789101112131415161718192021222324252627282930313233343536373839 |
- from datetime import datetime
- from django.db import models
- from django.conf import settings
- try:
- from django.utils.timezone import now as now
- except ImportError:
- now = datetime.now
- class AutoCreatedField(models.DateTimeField):
- """
- A DateTimeField that automatically populates itself at
- object creation.
- By default, sets editable=False, default=datetime.now.
- """
- def __init__(self, *args, **kwargs):
- kwargs.setdefault("editable", False)
- kwargs.setdefault("default", now)
- super(AutoCreatedField, self).__init__(*args, **kwargs)
- class AutoLastModifiedField(AutoCreatedField):
- """
- A DateTimeField that updates itself on each save() of the model.
- By default, sets editable=False and default=datetime.now.
- """
- def pre_save(self, model_instance, add):
- value = now()
- setattr(model_instance, self.attname, value)
- return value
|