本文介绍 django.forms.Field.initial
的用法。
声明
Field.initial
initial
参数允许您指定在未绑定的 Form
中呈现此 Field
时要使用的初始值。
要指定动态初始数据,请参阅
参数。Form.initial
用例是当您想要显示一个“empty” 表单时,其中一个字段被初始化为一个特定的值。例如:
>>> from django import forms
>>> class CommentForm(forms.Form):
... name = forms.CharField(initial='Your name')
... url = forms.URLField(initial='http://')
... comment = forms.CharField()
>>> f = CommentForm(auto_id=False)
>>> print(f)
<tr><th>Name:</th><td><input type="text" name="name" value="Your name" required></td></tr>
<tr><th>Url:</th><td><input type="url" name="url" value="http://" required></td></tr>
<tr><th>Comment:</th><td><input type="text" name="comment" required></td></tr>
您可能在想,为什么不在显示表单时将初始值的字典作为数据传递呢?好吧,如果您这样做,您将触发验证,并且 HTML 输出将包含任何验证错误:
>>> class CommentForm(forms.Form):
... name = forms.CharField()
... url = forms.URLField()
... comment = forms.CharField()
>>> default_data = {'name': 'Your name', 'url': 'http://'}
>>> f = CommentForm(default_data, auto_id=False)
>>> print(f)
<tr><th>Name:</th><td><input type="text" name="name" value="Your name" required></td></tr>
<tr><th>Url:</th><td><ul class="errorlist"><li>Enter a valid URL.</li></ul><input type="url" name="url" value="http://" required></td></tr>
<tr><th>Comment:</th><td><ul class="errorlist"><li>This field is required.</li></ul><input type="text" name="comment" required></td></tr>
这就是为什么 initial
值仅显示未绑定表单的原因。对于绑定表单,HTML 输出将使用绑定数据。
另请注意,如果未给出特定字段的值,initial
值是在验证中用作 “fallback” 数据的 not
。 initial
值是 only
用于初始表单显示:
>>> class CommentForm(forms.Form):
... name = forms.CharField(initial='Your name')
... url = forms.URLField(initial='http://')
... comment = forms.CharField()
>>> data = {'name': '', 'url': '', 'comment': 'Foo'}
>>> f = CommentForm(data)
>>> f.is_valid()
False
# The form does *not* fall back to using the initial values.
>>> f.errors
{'url': ['This field is required.'], 'name': ['This field is required.']}
除了常量,您还可以传递任何可调用对象:
>>> import datetime
>>> class DateForm(forms.Form):
... day = forms.DateField(initial=datetime.date.today)
>>> print(DateForm())
<tr><th>Day:</th><td><input type="text" name="day" value="12/23/2008" required><td></tr>
只有在显示未绑定的表单时才会评估可调用对象,而不是在定义时评估。
相关用法
- Python Django Field.description用法及代码示例
- Python Django Field.type_name用法及代码示例
- Python Django Field.help_text用法及代码示例
- Python Django Field.width用法及代码示例
- Python Django Field.label_suffix用法及代码示例
- Python Django Field.error_messages用法及代码示例
- Python Django Field.as_datetime用法及代码示例
- Python Django Field.label用法及代码示例
- Python Django Field.value用法及代码示例
- Python Django Field.type用法及代码示例
- Python Django Field.as_string用法及代码示例
- Python Django Field.as_int用法及代码示例
- Python Django Field.default用法及代码示例
- Python Django Field.as_double用法及代码示例
- Python Django Field.name用法及代码示例
- Python Django Field.precision用法及代码示例
- Python Django Field.required用法及代码示例
- Python Django File.save用法及代码示例
- Python File next()用法及代码示例
- Python File tell()用法及代码示例
- Python File seek()用法及代码示例
- Python OpenCV Filter2D()用法及代码示例
- Python File writable()用法及代码示例
- Python File close()用法及代码示例
- Python Django FileField.upload_to用法及代码示例
注:本文由纯净天空筛选整理自djangoproject.com大神的英文原创作品 django.forms.Field.initial。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。