mirror of
https://github.com/Hopiu/django-model-utils.git
synced 2026-03-17 04:10:24 +00:00
updated to use the new 1.4 timezones
This commit is contained in:
parent
4746180c4d
commit
31e5fb3c4a
2 changed files with 20 additions and 7 deletions
|
|
@ -5,6 +5,13 @@ from django.conf import settings
|
|||
|
||||
from model_utils import Choices
|
||||
|
||||
|
||||
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
|
||||
|
|
@ -15,7 +22,7 @@ class AutoCreatedField(models.DateTimeField):
|
|||
"""
|
||||
def __init__(self, *args, **kwargs):
|
||||
kwargs.setdefault('editable', False)
|
||||
kwargs.setdefault('default', datetime.now)
|
||||
kwargs.setdefault('default', now)
|
||||
super(AutoCreatedField, self).__init__(*args, **kwargs)
|
||||
|
||||
|
||||
|
|
@ -27,7 +34,7 @@ class AutoLastModifiedField(AutoCreatedField):
|
|||
|
||||
"""
|
||||
def pre_save(self, model_instance, add):
|
||||
value = datetime.now()
|
||||
value = now()
|
||||
setattr(model_instance, self.attname, value)
|
||||
return value
|
||||
|
||||
|
|
@ -67,7 +74,7 @@ class MonitorField(models.DateTimeField):
|
|||
|
||||
"""
|
||||
def __init__(self, *args, **kwargs):
|
||||
kwargs.setdefault('default', datetime.now)
|
||||
kwargs.setdefault('default', now)
|
||||
monitor = kwargs.pop('monitor', None)
|
||||
if not monitor:
|
||||
raise TypeError(
|
||||
|
|
@ -88,7 +95,7 @@ class MonitorField(models.DateTimeField):
|
|||
self.get_monitored_value(instance))
|
||||
|
||||
def pre_save(self, model_instance, add):
|
||||
value = datetime.now()
|
||||
value = now()
|
||||
previous = getattr(model_instance, self.monitor_attname, None)
|
||||
current = self.get_monitored_value(model_instance)
|
||||
if previous != current:
|
||||
|
|
|
|||
|
|
@ -13,6 +13,12 @@ from model_utils.managers import manager_from, InheritanceCastMixin, \
|
|||
from model_utils.fields import AutoCreatedField, AutoLastModifiedField, \
|
||||
StatusField, MonitorField
|
||||
|
||||
try:
|
||||
from django.utils.timezone import now as now
|
||||
except ImportError:
|
||||
now = datetime.now
|
||||
|
||||
|
||||
class InheritanceCastModel(models.Model):
|
||||
"""
|
||||
An abstract base class that provides a ``real_type`` FK to ContentType.
|
||||
|
|
@ -119,13 +125,13 @@ def add_timeframed_query_manager(sender, **kwargs):
|
|||
sender._meta.get_field('timeframed')
|
||||
raise ImproperlyConfigured("Model '%s' has a field named "
|
||||
"'timeframed' which conflicts with "
|
||||
"the TimeFramedModel manager."
|
||||
"the TimeFramedModel manager."
|
||||
% sender.__name__)
|
||||
except FieldDoesNotExist:
|
||||
pass
|
||||
sender.add_to_class('timeframed', QueryManager(
|
||||
(models.Q(start__lte=datetime.now) | models.Q(start__isnull=True)) &
|
||||
(models.Q(end__gte=datetime.now) | models.Q(end__isnull=True))
|
||||
(models.Q(start__lte=now) | models.Q(start__isnull=True)) &
|
||||
(models.Q(end__gte=now) | models.Q(end__isnull=True))
|
||||
))
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue