newforms: A label can now be the empty string, in which case a label won't be displayed
git-svn-id: http://code.djangoproject.com/svn/django/trunk@4240 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
30c2bffe17
commit
d0fcef9db0
|
@ -99,7 +99,8 @@ class BaseForm(StrAndUnicode):
|
|||
else:
|
||||
if errors_on_separate_row and bf_errors:
|
||||
output.append(error_row % bf_errors)
|
||||
output.append(normal_row % {'errors': bf_errors, 'label': bf.label_tag(escape(bf.label+':')), 'field': bf})
|
||||
label = bf.label and bf.label_tag(escape(bf.label + ':')) or ''
|
||||
output.append(normal_row % {'errors': bf_errors, 'label': label, 'field': bf})
|
||||
if top_errors:
|
||||
output.insert(0, error_row % top_errors)
|
||||
if hidden_fields: # Insert any hidden fields in the last row.
|
||||
|
@ -187,7 +188,10 @@ class BoundField(StrAndUnicode):
|
|||
self.field = field
|
||||
self.name = name
|
||||
self.html_name = form.add_prefix(name)
|
||||
self.label = self.field.label or pretty_name(name)
|
||||
if self.field.label is None:
|
||||
self.label = pretty_name(name)
|
||||
else:
|
||||
self.label = self.field.label
|
||||
|
||||
def __unicode__(self):
|
||||
"Renders this field as an HTML widget."
|
||||
|
|
|
@ -2080,6 +2080,33 @@ A label can be a Unicode object or a bytestring with special characters.
|
|||
>>> p.as_ul()
|
||||
u'<li>\u0160\u0110\u0106\u017d\u0107\u017e\u0161\u0111: <input type="text" name="username" maxlength="10" /></li>\n<li>\u0160\u0110\u0106\u017d\u0107\u017e\u0161\u0111: <input type="password" name="password" /></li>'
|
||||
|
||||
If a label is set to the empty string for a field, that field won't get a label.
|
||||
>>> class UserRegistration(Form):
|
||||
... username = CharField(max_length=10, label='')
|
||||
... password = CharField(widget=PasswordInput)
|
||||
>>> p = UserRegistration(auto_id=False)
|
||||
>>> print p.as_ul()
|
||||
<li> <input type="text" name="username" maxlength="10" /></li>
|
||||
<li>Password: <input type="password" name="password" /></li>
|
||||
>>> p = UserRegistration(auto_id='id_%s')
|
||||
>>> print p.as_ul()
|
||||
<li> <input id="id_username" type="text" name="username" maxlength="10" /></li>
|
||||
<li><label for="id_password">Password:</label> <input type="password" name="password" id="id_password" /></li>
|
||||
|
||||
If label is None, Django will auto-create the label from the field name. This
|
||||
is default behavior.
|
||||
>>> class UserRegistration(Form):
|
||||
... username = CharField(max_length=10, label=None)
|
||||
... password = CharField(widget=PasswordInput)
|
||||
>>> p = UserRegistration(auto_id=False)
|
||||
>>> print p.as_ul()
|
||||
<li>Username: <input type="text" name="username" maxlength="10" /></li>
|
||||
<li>Password: <input type="password" name="password" /></li>
|
||||
>>> p = UserRegistration(auto_id='id_%s')
|
||||
>>> print p.as_ul()
|
||||
<li><label for="id_username">Username:</label> <input id="id_username" type="text" name="username" maxlength="10" /></li>
|
||||
<li><label for="id_password">Password:</label> <input type="password" name="password" id="id_password" /></li>
|
||||
|
||||
# Forms with prefixes #########################################################
|
||||
|
||||
Sometimes it's necessary to have multiple forms display on the same HTML page,
|
||||
|
|
Loading…
Reference in New Issue