Django forms.DateInput验证 [英] Django forms.DateInput validation

查看:133
本文介绍了Django forms.DateInput验证的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用以下表单域定义,

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆