summaryrefslogtreecommitdiff
path: root/django/forms/forms.py
diff options
context:
space:
mode:
authorChris Jerdonek <chris.jerdonek@gmail.com>2021-07-05 06:21:23 -0700
committerGitHub <noreply@github.com>2021-07-05 15:21:23 +0200
commitedde2a069929c93e37835dc3f7c9a229040058e2 (patch)
treeaa848c25c3081ebc8c9db61893373596848effc1 /django/forms/forms.py
parent2231429991ee17987e3897238f9e5551c5c7ab2e (diff)
Fixed #32901 -- Optimized BaseForm.__getitem__().
Diffstat (limited to 'django/forms/forms.py')
-rw-r--r--django/forms/forms.py10
1 files changed, 7 insertions, 3 deletions
diff --git a/django/forms/forms.py b/django/forms/forms.py
index 14f5dea4cd..42ef772655 100644
--- a/django/forms/forms.py
+++ b/django/forms/forms.py
@@ -150,6 +150,10 @@ class BaseForm:
def __getitem__(self, name):
"""Return a BoundField with the given name."""
try:
+ return self._bound_fields_cache[name]
+ except KeyError:
+ pass
+ try:
field = self.fields[name]
except KeyError:
raise KeyError(
@@ -159,9 +163,9 @@ class BaseForm:
', '.join(sorted(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]
+ bound_field = field.get_bound_field(self, name)
+ self._bound_fields_cache[name] = bound_field
+ return bound_field
@property
def errors(self):