mirror of
https://github.com/django/django.git
synced 2025-10-24 14:16:09 +00:00
Fixes #10427 -- Abstract the value generation of a BoundField
git-svn-id: http://code.djangoproject.com/svn/django/trunk@14734 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
@@ -432,20 +432,11 @@ class BoundField(StrAndUnicode):
|
||||
else:
|
||||
attrs['id'] = self.html_initial_id
|
||||
|
||||
if not self.form.is_bound:
|
||||
data = self.form.initial.get(self.name, self.field.initial)
|
||||
if callable(data):
|
||||
data = data()
|
||||
else:
|
||||
data = self.field.bound_data(
|
||||
self.data, self.form.initial.get(self.name, self.field.initial))
|
||||
data = self.field.prepare_value(data)
|
||||
|
||||
if not only_initial:
|
||||
name = self.html_name
|
||||
else:
|
||||
name = self.html_initial_name
|
||||
return widget.render(name, data, attrs=attrs)
|
||||
return widget.render(name, self.value(), attrs=attrs)
|
||||
|
||||
def as_text(self, attrs=None, **kwargs):
|
||||
"""
|
||||
@@ -470,6 +461,21 @@ class BoundField(StrAndUnicode):
|
||||
return self.field.widget.value_from_datadict(self.form.data, self.form.files, self.html_name)
|
||||
data = property(_data)
|
||||
|
||||
def value(self):
|
||||
"""
|
||||
Returns the value for this BoundField, using the initial value if
|
||||
the form is not bound or the data otherwise.
|
||||
"""
|
||||
if not self.form.is_bound:
|
||||
data = self.form.initial.get(self.name, self.field.initial)
|
||||
if callable(data):
|
||||
data = data()
|
||||
else:
|
||||
data = self.field.bound_data(
|
||||
self.data, self.form.initial.get(self.name, self.field.initial)
|
||||
)
|
||||
return self.field.prepare_value(data)
|
||||
|
||||
def label_tag(self, contents=None, attrs=None):
|
||||
"""
|
||||
Wraps the given contents in a <label>, if the field has an ID attribute.
|
||||
|
||||
Reference in New Issue
Block a user