Source code for bits.models

"""
Utility Model classes based on `models.Model`

"""

###############################################################################
## Imports
###############################################################################
# Python
from datetime import datetime

# Django
from django.conf import settings
from django.db import models
from django import get_version

DJANGO_VERSION = get_version()
if DJANGO_VERSION >= '1.4':
    from django.utils.timezone import now


###############################################################################
## Code
###############################################################################
[docs]def usetz_now(): """Determine current time depending on USE_TZ setting. Affects Django 1.4 and above only. if `USE_TZ = True`, then returns current time according to timezone, else returns current UTC time. """ USE_TZ = getattr(settings, 'USE_TZ', False) if USE_TZ and DJANGO_VERSION >= '1.4': return now() else: return datetime.utcnow() ############################################################################### ## Models ###############################################################################
[docs]class BaseModel(models.Model): """Abstract base class with auto-populated created and updated fields. """ created = models.DateTimeField(default=usetz_now, db_index=True) updated = models.DateTimeField(default=usetz_now, db_index=True) class Meta: abstract = True def save(self, *args, **kwargs): self.updated = usetz_now() super(BaseModel, self).save(*args, **kwargs)

Project Versions

This Page