Fixed #21432 -- DateTimeQuery now copies tzinfo when cloning.
Thanks Enrique Martínez for the report and @bmispelon for the tests.
This commit is contained in:
parent
3e845b79ce
commit
17ed99f3a3
|
@ -260,6 +260,11 @@ class DateTimeQuery(DateQuery):
|
||||||
|
|
||||||
compiler = 'SQLDateTimeCompiler'
|
compiler = 'SQLDateTimeCompiler'
|
||||||
|
|
||||||
|
def clone(self, klass=None, memo=None, **kwargs):
|
||||||
|
if 'tzinfo' not in kwargs and hasattr(self, 'tzinfo'):
|
||||||
|
kwargs['tzinfo'] = self.tzinfo
|
||||||
|
return super(DateTimeQuery, self).clone(klass, memo, **kwargs)
|
||||||
|
|
||||||
def _check_field(self, field):
|
def _check_field(self, field):
|
||||||
assert isinstance(field, DateTimeField), \
|
assert isinstance(field, DateTimeField), \
|
||||||
"%r isn't a DateTimeField." % field.name
|
"%r isn't a DateTimeField." % field.name
|
||||||
|
|
|
@ -1,8 +1,16 @@
|
||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
import datetime
|
import datetime
|
||||||
|
from unittest import skipIf
|
||||||
|
|
||||||
|
try:
|
||||||
|
import pytz
|
||||||
|
except ImportError:
|
||||||
|
pytz = None
|
||||||
|
|
||||||
|
from django.test import TestCase, override_settings
|
||||||
|
from django.utils import timezone
|
||||||
|
|
||||||
from django.test import TestCase
|
|
||||||
|
|
||||||
from .models import Article, Comment, Category
|
from .models import Article, Comment, Category
|
||||||
|
|
||||||
|
@ -81,3 +89,11 @@ class DateTimesTests(TestCase):
|
||||||
],
|
],
|
||||||
lambda d: d,
|
lambda d: d,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@skipIf(pytz is None, "this test requires pytz")
|
||||||
|
@override_settings(USE_TZ=True)
|
||||||
|
def test_21432(self):
|
||||||
|
now = timezone.localtime(timezone.now().replace(microsecond=0))
|
||||||
|
Article.objects.create(title="First one", pub_date=now)
|
||||||
|
qs = Article.objects.datetimes('pub_date', 'second')
|
||||||
|
self.assertEqual(qs[0], now)
|
||||||
|
|
Loading…
Reference in New Issue