0

我正在使用以下表单字段定义,

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”。

如果我只是点击提交,它会立即告诉我这个错误:

开始日期:输入有效日期。

这甚至没有我做任何事情!Forms根据预定义格式分配的初始值如何验证失败?!

4

1 回答 1

0

可能'%Y/%m/%d'不在DateField'sinput_formats列表中。您可以尝试像这样添加它:

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'))

希望这可以帮助!

于 2013-06-25T14:27:12.797 回答