newforms: Added BoundField.as_hidden()
git-svn-id: http://code.djangoproject.com/svn/django/trunk@4145 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
d506b90163
commit
4dca65cdfc
|
@ -5,7 +5,7 @@ Form classes
|
|||
from django.utils.datastructures import SortedDict
|
||||
from django.utils.html import escape
|
||||
from fields import Field
|
||||
from widgets import TextInput, Textarea
|
||||
from widgets import TextInput, Textarea, HiddenInput
|
||||
from util import ErrorDict, ErrorList, ValidationError
|
||||
|
||||
NON_FIELD_ERRORS = '__all__'
|
||||
|
@ -194,6 +194,12 @@ class BoundField(object):
|
|||
"Returns a string of HTML for representing this as a <textarea>."
|
||||
return self.as_widget(Textarea(), attrs)
|
||||
|
||||
def as_hidden(self, attrs=None):
|
||||
"""
|
||||
Returns a string of HTML for representing this as an <input type="hidden">.
|
||||
"""
|
||||
return self.as_widget(HiddenInput(), 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)
|
||||
|
|
|
@ -1436,11 +1436,14 @@ Any Field can have a Widget class passed to its constructor:
|
|||
>>> print f['message']
|
||||
<textarea name="message"></textarea>
|
||||
|
||||
as_textarea() and as_text() are shortcuts for changing the output widget type:
|
||||
as_textarea(), as_text() and as_hidden() are shortcuts for changing the output
|
||||
widget type:
|
||||
>>> f['subject'].as_textarea()
|
||||
u'<textarea name="subject"></textarea>'
|
||||
>>> f['message'].as_text()
|
||||
u'<input type="text" name="message" />'
|
||||
>>> f['message'].as_hidden()
|
||||
u'<input type="hidden" name="message" />'
|
||||
|
||||
The 'widget' parameter to a Field can also be an instance:
|
||||
>>> class ContactForm(Form):
|
||||
|
@ -1450,7 +1453,8 @@ The 'widget' parameter to a Field can also be an instance:
|
|||
>>> print f['message']
|
||||
<textarea rows="80" cols="20" name="message"></textarea>
|
||||
|
||||
Instance-level attrs are *not* carried over to as_textarea() and as_text():
|
||||
Instance-level attrs are *not* carried over to as_textarea(), as_text() and
|
||||
as_hidden():
|
||||
>>> f['message'].as_text()
|
||||
u'<input type="text" name="message" />'
|
||||
>>> f = ContactForm({'subject': 'Hello', 'message': 'I love you.'})
|
||||
|
@ -1458,6 +1462,8 @@ u'<input type="text" name="message" />'
|
|||
u'<textarea name="subject">Hello</textarea>'
|
||||
>>> f['message'].as_text()
|
||||
u'<input type="text" name="message" value="I love you." />'
|
||||
>>> f['message'].as_hidden()
|
||||
u'<input type="hidden" name="message" value="I love you." />'
|
||||
|
||||
For a form with a <select>, use ChoiceField:
|
||||
>>> class FrameworkForm(Form):
|
||||
|
|
Loading…
Reference in New Issue