[8721] introduced some internal field names. We hide them from the list of
valid field names in debugging output so that it doesn't confuse things. git-svn-id: http://code.djangoproject.com/svn/django/trunk@8730 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
c60e22c073
commit
fd0cc45828
|
@ -280,7 +280,9 @@ class Options(object):
|
|||
def get_all_field_names(self):
|
||||
"""
|
||||
Returns a list of all field names that are possible for this model
|
||||
(including reverse relation names).
|
||||
(including reverse relation names). This is used for pretty printing
|
||||
debugging output (a list of choices), so any internal-only field names
|
||||
are not included.
|
||||
"""
|
||||
try:
|
||||
cache = self._name_map
|
||||
|
@ -288,7 +290,9 @@ class Options(object):
|
|||
cache = self.init_name_map()
|
||||
names = cache.keys()
|
||||
names.sort()
|
||||
return names
|
||||
# Internal-only names end with "+" (symmetrical m2m related names being
|
||||
# the main example). Trim them.
|
||||
return [val for val in names if not val.endswith('+')]
|
||||
|
||||
def init_name_map(self):
|
||||
"""
|
||||
|
|
|
@ -52,5 +52,12 @@ __test__ = {"regressions": """
|
|||
>>> e1.related.all()
|
||||
[<Tag: t2>]
|
||||
|
||||
# The secret internal related names for self-referential many-to-many fields
|
||||
# shouldn't appear in the list when an error is made.
|
||||
>>> SelfRefer.objects.filter(porcupine='fred')
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
FieldError: Cannot resolve keyword 'porcupine' into field. Choices are: id, name, references, related
|
||||
|
||||
"""
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue