【问题标题】:Django forms.DateInput validationDjango forms.DateInput 验证
【发布时间】:2013-06-25 14:21:36
【问题描述】:

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

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根据预定义格式分配的初始值如何验证失败?!

【问题讨论】:

    标签: django forms validation date


    【解决方案1】:

    也许'%Y/%m/%d' 不在DateFieldinput_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-03-16
      • 1970-01-01
      • 2018-09-28
      • 2012-04-20
      • 2014-07-16
      • 2012-09-30
      • 2012-08-13
      • 2016-03-03
      • 2020-11-08
      相关资源
      最近更新 更多