Ticket #4130: patch_field_choices.txt

File patch_field_choices.txt, 1.3 KB (added by ned@…, 17 years ago)

The patch!

Line 
1Index: django/db/models/query.py
2===================================================================
3--- django/db/models/query.py (revision 5061)
4+++ django/db/models/query.py (working copy)
5@@ -853,6 +853,13 @@
6 return None
7 return matches[0]
8
9+def field_choices(field_list, related_query):
10+ if related_query:
11+ choices = [f.field.related_query_name() for f in field_list]
12+ else:
13+ choices = [f.name for f in field_list]
14+ return choices
15+
16 def lookup_inner(path, lookup_type, value, opts, table, column):
17 qn = backend.quote_name
18 joins, where, params = SortedDict(), [], []
19@@ -937,7 +944,11 @@
20 except FieldFound: # Match found, loop has been shortcut.
21 pass
22 else: # No match found.
23- raise TypeError, "Cannot resolve keyword '%s' into field" % name
24+ choices = field_choices(current_opts.many_to_many, False) + \
25+ field_choices(current_opts.get_all_related_many_to_many_objects(), True) + \
26+ field_choices(current_opts.get_all_related_objects(), True) + \
27+ field_choices(current_opts.fields, False)
28+ raise TypeError, "Cannot resolve keyword '%s' into field, choices are: %s" % (name, ", ".join(choices))
29
30 # Check whether an intermediate join is required between current_table
31 # and new_table.
Back to Top