Fixed #9778 -- Added some special casing of the "Join on field 'abc'" error

message. It now gives an extra hint if there's a chance you just made a typo in
the lookup type.


git-svn-id: http://code.djangoproject.com/svn/django/trunk@9620 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Malcolm Tredinnick 2008-12-09 07:03:52 +00:00
parent 5e9c5de78a
commit 5570b0766d
2 changed files with 5 additions and 2 deletions

View File

@ -1455,7 +1455,10 @@ class BaseQuery(object):
self.update_dupe_avoidance(dupe_opts, dupe_col, alias)
if pos != len(names) - 1:
raise FieldError("Join on field %r not permitted." % name)
if pos == len(names) - 2:
raise FieldError("Join on field %r not permitted. Did you misspell %r for the lookup type?" % (name, names[pos + 1]))
else:
raise FieldError("Join on field %r not permitted." % name)
return field, target, opts, joins, last, extra_filters

View File

@ -293,7 +293,7 @@ FieldError: Cannot resolve keyword 'pub_date_year' into field. Choices are: head
>>> Article.objects.filter(headline__starts='Article')
Traceback (most recent call last):
...
FieldError: Join on field 'headline' not permitted.
FieldError: Join on field 'headline' not permitted. Did you misspell 'starts' for the lookup type?
# Create some articles with a bit more interesting headlines for testing field lookups:
>>> now = datetime.now()