summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdrian Holovaty <adrian@holovaty.com>2006-11-30 03:58:25 +0000
committerAdrian Holovaty <adrian@holovaty.com>2006-11-30 03:58:25 +0000
commit4dca65cdfc1e206fac323bd8afae9ae1fccc9dac (patch)
tree9441161d640dc859ae30e9b661d9afcf74e44a71
parentd506b90163feb4780d358c657804db446bc60780 (diff)
newforms: Added BoundField.as_hidden()
git-svn-id: http://code.djangoproject.com/svn/django/trunk@4145 bcc190cf-cafb-0310-a4f2-bffc1f526a37
-rw-r--r--django/newforms/forms.py8
-rw-r--r--tests/regressiontests/forms/tests.py10
2 files changed, 15 insertions, 3 deletions
diff --git a/django/newforms/forms.py b/django/newforms/forms.py
index 3712c676c4..393f576dca 100644
--- a/django/newforms/forms.py
+++ b/django/newforms/forms.py
@@ -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)
diff --git a/tests/regressiontests/forms/tests.py b/tests/regressiontests/forms/tests.py
index 40c49067af..bfa9d07237 100644
--- a/tests/regressiontests/forms/tests.py
+++ b/tests/regressiontests/forms/tests.py
@@ -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):