mirror of
https://github.com/django/django.git
synced 2025-08-04 10:59:45 +00:00
Fixed #29396 -- Added indirect values support to __year lookups.
Thanks Windson Yang for the initial patch.
This commit is contained in:
parent
4d1420947e
commit
2b582a7b84
2 changed files with 26 additions and 19 deletions
|
@ -135,6 +135,11 @@ class DateFunctionTests(TestCase):
|
|||
qs = DTModel.objects.filter(**{'start_datetime__%s__gte' % lookup: 2015})
|
||||
self.assertEqual(qs.count(), 2)
|
||||
self.assertEqual(str(qs.query).lower().count('extract'), 0)
|
||||
qs = DTModel.objects.annotate(
|
||||
start_year=ExtractYear('start_datetime'),
|
||||
).filter(**{'end_datetime__%s__gte' % lookup: F('start_year')})
|
||||
self.assertEqual(qs.count(), 1)
|
||||
self.assertGreaterEqual(str(qs.query).lower().count('extract'), 2)
|
||||
|
||||
def test_extract_year_lessthan_lookup(self):
|
||||
start_datetime = datetime(2015, 6, 15, 14, 10)
|
||||
|
@ -153,6 +158,11 @@ class DateFunctionTests(TestCase):
|
|||
qs = DTModel.objects.filter(**{'start_datetime__%s__lte' % lookup: 2016})
|
||||
self.assertEqual(qs.count(), 2)
|
||||
self.assertEqual(str(qs.query).count('extract'), 0)
|
||||
qs = DTModel.objects.annotate(
|
||||
end_year=ExtractYear('end_datetime'),
|
||||
).filter(**{'start_datetime__%s__lte' % lookup: F('end_year')})
|
||||
self.assertEqual(qs.count(), 1)
|
||||
self.assertGreaterEqual(str(qs.query).lower().count('extract'), 2)
|
||||
|
||||
def test_extract_func(self):
|
||||
start_datetime = datetime(2015, 6, 15, 14, 30, 50, 321)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue