summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMariusz Felisiak <felisiak.mariusz@gmail.com>2016-09-27 21:00:36 +0200
committerTim Graham <timograham@gmail.com>2016-09-27 15:00:36 -0400
commit14986a0b9d5ef9e89eb9b9cac561d5baab89f123 (patch)
tree170819dd93ea241cf53555adfac4ba85ecdbd71e
parent602bffe7585c6b61f3d9badf21f84c1eb445d58f (diff)
Fixed #27268 -- Restored an invalid related field lookup error message in QuerySet filtering.
-rw-r--r--django/db/models/sql/query.py2
-rw-r--r--tests/lookup/tests.py3
2 files changed, 5 insertions, 0 deletions
diff --git a/django/db/models/sql/query.py b/django/db/models/sql/query.py
index e6516194dd..408b697b48 100644
--- a/django/db/models/sql/query.py
+++ b/django/db/models/sql/query.py
@@ -1192,6 +1192,8 @@ class Query(object):
raise FieldError('Related Field got invalid lookup: {}'.format(lookups[0]))
assert num_lookups > 0 # Likely a bug in Django if this fails.
lookup_class = field.get_lookup(lookups[0])
+ if lookup_class is None:
+ raise FieldError('Related Field got invalid lookup: {}'.format(lookups[0]))
if len(targets) == 1:
lhs = targets[0].get_col(alias, field)
else:
diff --git a/tests/lookup/tests.py b/tests/lookup/tests.py
index c1b4e9be51..0f5b72f051 100644
--- a/tests/lookup/tests.py
+++ b/tests/lookup/tests.py
@@ -515,6 +515,9 @@ class LookupTests(TestCase):
msg = 'Related Field got invalid lookup: editor'
with self.assertRaisesMessage(FieldError, msg):
Article.objects.filter(author__editor__name='James')
+ msg = 'Related Field got invalid lookup: foo'
+ with self.assertRaisesMessage(FieldError, msg):
+ Tag.objects.filter(articles__foo='bar')
def test_regex(self):
# Create some articles with a bit more interesting headlines for testing field lookups: