本文介紹 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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。