Commit fd0cc458 authored by Malcolm Tredinnick's avatar Malcolm Tredinnick
Browse files

[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
parent c60e22c0
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -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):
        """
+7 −0
Original line number Diff line number Diff line
@@ -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

"""
}