diff --git a/django/newforms/forms.py b/django/newforms/forms.py index 8b58b94ccd..3712c676c4 100644 --- a/django/newforms/forms.py +++ b/django/newforms/forms.py @@ -182,7 +182,7 @@ class BoundField(object): auto_id = self.auto_id if auto_id and not attrs.has_key('id') and not widget.attrs.has_key('id'): attrs['id'] = auto_id - return widget.render(self._name, self._form.data.get(self._name, None), attrs=attrs) + return widget.render(self._name, self.data, attrs=attrs) def as_text(self, attrs=None): """ @@ -194,6 +194,11 @@ class BoundField(object): "Returns a string of HTML for representing this as a <textarea>." return self.as_widget(Textarea(), attrs) + def _data(self): + "Returns the data for this BoundField, or None if it wasn't given." + return self._form.data.get(self._name, None) + data = property(_data) + def _verbose_name(self): return pretty_name(self._name) verbose_name = property(_verbose_name) diff --git a/tests/regressiontests/forms/tests.py b/tests/regressiontests/forms/tests.py index e3b7553155..40c49067af 100644 --- a/tests/regressiontests/forms/tests.py +++ b/tests/regressiontests/forms/tests.py @@ -1268,6 +1268,11 @@ u'' <input type="text" name="first_name" value="John" /> <input type="text" name="last_name" value="Lennon" /> <input type="text" name="birthday" value="1940-10-9" /> +>>> for boundfield in p: +... print boundfield.verbose_name, boundfield.data +First name John +Last name Lennon +Birthday 1940-10-9 >>> print p <tr><td>First name:</td><td><input type="text" name="first_name" value="John" /></td></tr> <tr><td>Last name:</td><td><input type="text" name="last_name" value="Lennon" /></td></tr>