Django forms.DateInput验证 [英] Django forms.DateInput validation
问题描述
我使用以下表单域定义,
I'm using the following form field definitions,
start_date = django.forms.DateField(
label=_("Start date"),
initial=timezone.now().date(),
widget=django.forms.DateInput(format = '%Y/%m/%d'))
end_date = django.forms.DateField(
label=_("End date"),
initial=None,
required=False,
widget=django.forms.DateInput(format = '%Y/%m/%d'))
由于我为 start_date
设置了初始值,所以在窗体上显示了默认值,如2013/06/25。
Since I set the initial for start_date
, it shows up on the form with the default value, something like "2013/06/25".
如果我只是点击提交,它会立即告诉我这个错误:
If I just click on submit, it immediately tells me this error:
开始日期:输入有效的日期。
Start date: Enter a valid date.
这是没有我甚至做任何事情!如何根据预定义的格式将窗体分配的初始值失败验证?
This is without me even doing anything! How is it that an initial value assigned by Forms according to the pre-defined format FAIL the validation ?!
推荐答案
也许'%Y /%m /%d'
不在 DateField
的 input_formats
列表中。您可以尝试添加它:
Maybe '%Y/%m/%d'
is not in the DateField
's input_formats
list. You can try to add it like this:
start_date = django.forms.DateField(label=_("Start date"),
initial=timezone.now().date(),
input_formats=['%Y/%m/%d'],
widget=django.forms.DateInput(format = '%Y/%m/%d'), input_formats=('%Y/%m/%d'))
end_date = django.forms.DateField(label=_("End date"),
initial=None,
required=False,
input_formats=['%Y/%m/%d'],
widget=django.forms.DateInput(format = '%Y/%m/%d'), input_formats=('%Y/%m/%d'))
希望这有帮助!
这篇关于Django forms.DateInput验证的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!