diff --git a/django/db/models/fields/related.py b/django/db/models/fields/related.py index 679b37cfca..419695b74b 100644 --- a/django/db/models/fields/related.py +++ b/django/db/models/fields/related.py @@ -155,7 +155,7 @@ class RelatedField(object): # 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 # in the future. - if lookup_type in ['exact', 'gt', 'lt']: + if lookup_type in ['exact', 'gt', 'lt', 'gte', 'lte']: return [pk_trace(value)] if lookup_type in ('range', 'in'): return [pk_trace(v) for v in value] diff --git a/tests/regressiontests/model_regress/tests.py b/tests/regressiontests/model_regress/tests.py new file mode 100644 index 0000000000..0257c63d8c --- /dev/null +++ b/tests/regressiontests/model_regress/tests.py @@ -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)