Fixed #8426 - added 'helptext' CSS class to help text in forms to aid in styling
Thanks to erikcw for report, mrts and rpbarlow for patch git-svn-id: http://code.djangoproject.com/svn/django/trunk@13519 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
917f433727
commit
550912c513
|
@ -554,7 +554,7 @@ fields with the 'choices' attribute are represented by a ChoiceField.
|
||||||
<option value="1">Entertainment</option>
|
<option value="1">Entertainment</option>
|
||||||
<option value="2">It's a test</option>
|
<option value="2">It's a test</option>
|
||||||
<option value="3">Third test</option>
|
<option value="3">Third test</option>
|
||||||
</select><br /> Hold down "Control", or "Command" on a Mac, to select more than one.</td></tr>
|
</select><br /><span class="helptext"> Hold down "Control", or "Command" on a Mac, to select more than one.</span></td></tr>
|
||||||
|
|
||||||
You can restrict a form to a subset of the complete list of fields
|
You can restrict a form to a subset of the complete list of fields
|
||||||
by providing a 'fields' argument. If you try to save a
|
by providing a 'fields' argument. If you try to save a
|
||||||
|
@ -579,7 +579,7 @@ inserted as 'initial' data in each Field.
|
||||||
... model = Writer
|
... model = Writer
|
||||||
>>> f = RoykoForm(auto_id=False, instance=w)
|
>>> f = RoykoForm(auto_id=False, instance=w)
|
||||||
>>> print f
|
>>> print f
|
||||||
<tr><th>Name:</th><td><input type="text" name="name" value="Mike Royko" maxlength="50" /><br />Use both first and last names.</td></tr>
|
<tr><th>Name:</th><td><input type="text" name="name" value="Mike Royko" maxlength="50" /><br /><span class="helptext">Use both first and last names.</span></td></tr>
|
||||||
|
|
||||||
>>> art = Article(headline='Test article', slug='test-article', pub_date=datetime.date(1988, 1, 4), writer=w, article='Hello.')
|
>>> art = Article(headline='Test article', slug='test-article', pub_date=datetime.date(1988, 1, 4), writer=w, article='Hello.')
|
||||||
>>> art.save()
|
>>> art.save()
|
||||||
|
@ -609,7 +609,7 @@ inserted as 'initial' data in each Field.
|
||||||
<option value="1">Entertainment</option>
|
<option value="1">Entertainment</option>
|
||||||
<option value="2">It's a test</option>
|
<option value="2">It's a test</option>
|
||||||
<option value="3">Third test</option>
|
<option value="3">Third test</option>
|
||||||
</select> Hold down "Control", or "Command" on a Mac, to select more than one.</li>
|
</select> <span class="helptext"> Hold down "Control", or "Command" on a Mac, to select more than one.</span></li>
|
||||||
>>> f = TestArticleForm({'headline': u'Test headline', 'slug': 'test-headline', 'pub_date': u'1984-02-06', 'writer': unicode(w_royko.pk), 'article': 'Hello.'}, instance=art)
|
>>> f = TestArticleForm({'headline': u'Test headline', 'slug': 'test-headline', 'pub_date': u'1984-02-06', 'writer': unicode(w_royko.pk), 'article': 'Hello.'}, instance=art)
|
||||||
>>> f.errors
|
>>> f.errors
|
||||||
{}
|
{}
|
||||||
|
@ -672,7 +672,7 @@ Add some categories and test the many-to-many form output.
|
||||||
<option value="1" selected="selected">Entertainment</option>
|
<option value="1" selected="selected">Entertainment</option>
|
||||||
<option value="2">It's a test</option>
|
<option value="2">It's a test</option>
|
||||||
<option value="3">Third test</option>
|
<option value="3">Third test</option>
|
||||||
</select> Hold down "Control", or "Command" on a Mac, to select more than one.</li>
|
</select> <span class="helptext"> Hold down "Control", or "Command" on a Mac, to select more than one.</span></li>
|
||||||
|
|
||||||
Initial values can be provided for model forms
|
Initial values can be provided for model forms
|
||||||
>>> f = TestArticleForm(auto_id=False, initial={'headline': 'Your headline here', 'categories': ['1','2']})
|
>>> f = TestArticleForm(auto_id=False, initial={'headline': 'Your headline here', 'categories': ['1','2']})
|
||||||
|
@ -696,7 +696,7 @@ Initial values can be provided for model forms
|
||||||
<option value="1" selected="selected">Entertainment</option>
|
<option value="1" selected="selected">Entertainment</option>
|
||||||
<option value="2" selected="selected">It's a test</option>
|
<option value="2" selected="selected">It's a test</option>
|
||||||
<option value="3">Third test</option>
|
<option value="3">Third test</option>
|
||||||
</select> Hold down "Control", or "Command" on a Mac, to select more than one.</li>
|
</select> <span class="helptext"> Hold down "Control", or "Command" on a Mac, to select more than one.</span></li>
|
||||||
|
|
||||||
>>> f = TestArticleForm({'headline': u'New headline', 'slug': u'new-headline', 'pub_date': u'1988-01-04',
|
>>> f = TestArticleForm({'headline': u'New headline', 'slug': u'new-headline', 'pub_date': u'1988-01-04',
|
||||||
... 'writer': unicode(w_royko.pk), 'article': u'Hello.', 'categories': [u'1', u'2']}, instance=new_art)
|
... 'writer': unicode(w_royko.pk), 'article': u'Hello.', 'categories': [u'1', u'2']}, instance=new_art)
|
||||||
|
@ -812,7 +812,7 @@ the data in the database when the form is instantiated.
|
||||||
<option value="1">Entertainment</option>
|
<option value="1">Entertainment</option>
|
||||||
<option value="2">It's a test</option>
|
<option value="2">It's a test</option>
|
||||||
<option value="3">Third</option>
|
<option value="3">Third</option>
|
||||||
</select> Hold down "Control", or "Command" on a Mac, to select more than one.</li>
|
</select> <span class="helptext"> Hold down "Control", or "Command" on a Mac, to select more than one.</span></li>
|
||||||
>>> Category.objects.create(name='Fourth', url='4th')
|
>>> Category.objects.create(name='Fourth', url='4th')
|
||||||
<Category: Fourth>
|
<Category: Fourth>
|
||||||
>>> Writer.objects.create(name='Carl Bernstein')
|
>>> Writer.objects.create(name='Carl Bernstein')
|
||||||
|
@ -839,7 +839,7 @@ the data in the database when the form is instantiated.
|
||||||
<option value="2">It's a test</option>
|
<option value="2">It's a test</option>
|
||||||
<option value="3">Third</option>
|
<option value="3">Third</option>
|
||||||
<option value="4">Fourth</option>
|
<option value="4">Fourth</option>
|
||||||
</select> Hold down "Control", or "Command" on a Mac, to select more than one.</li>
|
</select> <span class="helptext"> Hold down "Control", or "Command" on a Mac, to select more than one.</span></li>
|
||||||
|
|
||||||
# ModelChoiceField ############################################################
|
# ModelChoiceField ############################################################
|
||||||
|
|
||||||
|
|
|
@ -1258,20 +1258,20 @@ to a Field class. This help text is displayed when a Form is rendered.
|
||||||
... password = CharField(widget=PasswordInput, help_text='Choose wisely.')
|
... password = CharField(widget=PasswordInput, help_text='Choose wisely.')
|
||||||
>>> p = UserRegistration(auto_id=False)
|
>>> p = UserRegistration(auto_id=False)
|
||||||
>>> print p.as_ul()
|
>>> print p.as_ul()
|
||||||
<li>Username: <input type="text" name="username" maxlength="10" /> e.g., user@example.com</li>
|
<li>Username: <input type="text" name="username" maxlength="10" /> <span class="helptext">e.g., user@example.com</span></li>
|
||||||
<li>Password: <input type="password" name="password" /> Choose wisely.</li>
|
<li>Password: <input type="password" name="password" /> <span class="helptext">Choose wisely.</span></li>
|
||||||
>>> print p.as_p()
|
>>> print p.as_p()
|
||||||
<p>Username: <input type="text" name="username" maxlength="10" /> e.g., user@example.com</p>
|
<p>Username: <input type="text" name="username" maxlength="10" /> <span class="helptext">e.g., user@example.com</span></p>
|
||||||
<p>Password: <input type="password" name="password" /> Choose wisely.</p>
|
<p>Password: <input type="password" name="password" /> <span class="helptext">Choose wisely.</span></p>
|
||||||
>>> print p.as_table()
|
>>> print p.as_table()
|
||||||
<tr><th>Username:</th><td><input type="text" name="username" maxlength="10" /><br />e.g., user@example.com</td></tr>
|
<tr><th>Username:</th><td><input type="text" name="username" maxlength="10" /><br /><span class="helptext">e.g., user@example.com</span></td></tr>
|
||||||
<tr><th>Password:</th><td><input type="password" name="password" /><br />Choose wisely.</td></tr>
|
<tr><th>Password:</th><td><input type="password" name="password" /><br /><span class="helptext">Choose wisely.</span></td></tr>
|
||||||
|
|
||||||
The help text is displayed whether or not data is provided for the form.
|
The help text is displayed whether or not data is provided for the form.
|
||||||
>>> p = UserRegistration({'username': u'foo'}, auto_id=False)
|
>>> p = UserRegistration({'username': u'foo'}, auto_id=False)
|
||||||
>>> print p.as_ul()
|
>>> print p.as_ul()
|
||||||
<li>Username: <input type="text" name="username" value="foo" maxlength="10" /> e.g., user@example.com</li>
|
<li>Username: <input type="text" name="username" value="foo" maxlength="10" /> <span class="helptext">e.g., user@example.com</span></li>
|
||||||
<li><ul class="errorlist"><li>This field is required.</li></ul>Password: <input type="password" name="password" /> Choose wisely.</li>
|
<li><ul class="errorlist"><li>This field is required.</li></ul>Password: <input type="password" name="password" /> <span class="helptext">Choose wisely.</span></li>
|
||||||
|
|
||||||
help_text is not displayed for hidden fields. It can be used for documentation
|
help_text is not displayed for hidden fields. It can be used for documentation
|
||||||
purposes, though.
|
purposes, though.
|
||||||
|
@ -1281,7 +1281,7 @@ purposes, though.
|
||||||
... next = CharField(widget=HiddenInput, initial='/', help_text='Redirect destination')
|
... next = CharField(widget=HiddenInput, initial='/', help_text='Redirect destination')
|
||||||
>>> p = UserRegistration(auto_id=False)
|
>>> p = UserRegistration(auto_id=False)
|
||||||
>>> print p.as_ul()
|
>>> print p.as_ul()
|
||||||
<li>Username: <input type="text" name="username" maxlength="10" /> e.g., user@example.com</li>
|
<li>Username: <input type="text" name="username" maxlength="10" /> <span class="helptext">e.g., user@example.com</span></li>
|
||||||
<li>Password: <input type="password" name="password" /><input type="hidden" name="next" value="/" /></li>
|
<li>Password: <input type="password" name="password" /><input type="hidden" name="next" value="/" /></li>
|
||||||
|
|
||||||
Help text can include arbitrary Unicode characters.
|
Help text can include arbitrary Unicode characters.
|
||||||
|
@ -1289,7 +1289,7 @@ Help text can include arbitrary Unicode characters.
|
||||||
... username = CharField(max_length=10, help_text='ŠĐĆŽćžšđ')
|
... username = CharField(max_length=10, help_text='ŠĐĆŽćžšđ')
|
||||||
>>> p = UserRegistration(auto_id=False)
|
>>> p = UserRegistration(auto_id=False)
|
||||||
>>> p.as_ul()
|
>>> p.as_ul()
|
||||||
u'<li>Username: <input type="text" name="username" maxlength="10" /> \u0160\u0110\u0106\u017d\u0107\u017e\u0161\u0111</li>'
|
u'<li>Username: <input type="text" name="username" maxlength="10" /> <span class="helptext">\u0160\u0110\u0106\u017d\u0107\u017e\u0161\u0111</span></li>'
|
||||||
|
|
||||||
# Subclassing forms ###########################################################
|
# Subclassing forms ###########################################################
|
||||||
|
|
||||||
|
|
|
@ -129,7 +129,7 @@ class ManyToManyCallableInitialTests(TestCase):
|
||||||
<option value="1" selected="selected">First Book</option>
|
<option value="1" selected="selected">First Book</option>
|
||||||
<option value="2" selected="selected">Second Book</option>
|
<option value="2" selected="selected">Second Book</option>
|
||||||
<option value="3">Third Book</option>
|
<option value="3">Third Book</option>
|
||||||
</select> Hold down "Control", or "Command" on a Mac, to select more than one.</li>""")
|
</select> <span class="helptext"> Hold down "Control", or "Command" on a Mac, to select more than one.</span></li>""")
|
||||||
|
|
||||||
class CFFForm(forms.ModelForm):
|
class CFFForm(forms.ModelForm):
|
||||||
class Meta:
|
class Meta:
|
||||||
|
|
Loading…
Reference in New Issue