From 535809e12161d28dacaf5161436fc05a9bb064aa Mon Sep 17 00:00:00 2001 From: Moritz Sichert Date: Mon, 10 Aug 2015 10:55:49 +0200 Subject: Fixed #25294 -- Allowed custom BoundFields on forms. --- django/forms/fields.py | 8 ++++++++ django/forms/forms.py | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) (limited to 'django/forms') diff --git a/django/forms/fields.py b/django/forms/fields.py index ea93c306c5..762d59c1b9 100644 --- a/django/forms/fields.py +++ b/django/forms/fields.py @@ -204,6 +204,14 @@ class Field(six.with_metaclass(RenameFieldMethods, object)): data_value = data if data is not None else '' return initial_value != data_value + def get_bound_field(self, form, field_name): + """ + Return a BoundField instance that will be used when accessing the form + field in a template. + """ + from django.forms.forms import BoundField + return BoundField(form, self, field_name) + def __deepcopy__(self, memo): result = copy.copy(self) memo[id(self)] = result diff --git a/django/forms/forms.py b/django/forms/forms.py index 7db2465fda..07415f8fe1 100644 --- a/django/forms/forms.py +++ b/django/forms/forms.py @@ -152,7 +152,7 @@ class BaseForm(object): raise KeyError( "Key %r not found in '%s'" % (name, self.__class__.__name__)) if name not in self._bound_fields_cache: - self._bound_fields_cache[name] = BoundField(self, field, name) + self._bound_fields_cache[name] = field.get_bound_field(self, name) return self._bound_fields_cache[name] @property -- cgit v1.3