Commit 3cb63b0e authored by Tim Graham's avatar Tim Graham
Browse files

Refs #26502 -- Added choices to Form.__getitem__() KeyError message.

parent 5c6d3979
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -140,7 +140,12 @@ class BaseForm(object):
            field = self.fields[name]
        except KeyError:
            raise KeyError(
                "Key %r not found in '%s'" % (name, self.__class__.__name__))
                "Key '%s' not found in '%s'. Choices are: %s." % (
                    name,
                    self.__class__.__name__,
                    ', '.join(sorted(f for f in self.fields)),
                )
            )
        if name not in self._bound_fields_cache:
            self._bound_fields_cache[name] = field.get_bound_field(self, name)
        return self._bound_fields_cache[name]
+2 −3
Original line number Diff line number Diff line
@@ -71,10 +71,9 @@ class FormsTestCase(SimpleTestCase):
            '<input type="text" name="birthday" value="1940-10-9" id="id_birthday" />'
        )

        nonexistenterror = "Key u?'nonexistentfield' not found in 'Person'"
        with six.assertRaisesRegex(self, KeyError, nonexistenterror):
        msg = "Key 'nonexistentfield' not found in 'Person'. Choices are: birthday, first_name, last_name."
        with self.assertRaisesMessage(KeyError, msg):
            p['nonexistentfield']
            self.fail('Attempts to access non-existent fields should fail.')

        form_output = []