Fixed #10153: foreign key `gte` and `lte` lookups now work. Thanks, joelhooks and adurdin.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@10692 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Jacob Kaplan-Moss 2009-05-07 16:12:08 +00:00
parent bfdb7d26aa
commit fb9ac5729d
2 changed files with 17 additions and 1 deletions

View File

@ -155,7 +155,7 @@ class RelatedField(object):
# get_(next/prev)_by_date work; other lookups are not allowed since that # get_(next/prev)_by_date work; other lookups are not allowed since that
# gets messy pretty quick. This is a good candidate for some refactoring # gets messy pretty quick. This is a good candidate for some refactoring
# in the future. # in the future.
if lookup_type in ['exact', 'gt', 'lt']: if lookup_type in ['exact', 'gt', 'lt', 'gte', 'lte']:
return [pk_trace(value)] return [pk_trace(value)]
if lookup_type in ('range', 'in'): if lookup_type in ('range', 'in'):
return [pk_trace(v) for v in value] return [pk_trace(v) for v in value]

View File

@ -0,0 +1,16 @@
from models import Worker
from django.test import TestCase
class RelatedModelOrderedLookupTest(TestCase):
"""
Regression test for #10153: foreign key __gte and __lte lookups.
"""
# The bug is that the following queries would raise:
# "TypeError: Related Field has invalid lookup: gte"
def test_related_gte_lookup(self):
Worker.objects.filter(department__gte=0)
def test_related_lte_lookup(self):
Worker.objects.filter(department__lte=0)