【问题标题】:__init__() got multiple values for keyword argument 'input_formats'__init__() 为关键字参数“input_formats”获得了多个值
【发布时间】:2015-09-17 21:10:37
【问题描述】:

forms.py

from django import forms

ACCEPTED_FORMATS = ['%d-%m-%Y', '%d.%m.%Y', '%d/%m/%Y']

class LeaveRequestForm(forms.Form):
    start_date = forms.DateField(input_formats=ACCEPTED_FORMATS)
    end_date = forms.DateField(input_formats=ACCEPTED_FORMATS)
    working_days = forms.IntegerField(min_value=1)

每次我收到“输入有效日期”时,我都找不到任何可以通过表单验证的日期格式,所以当我尝试定义一些异常时:

__init__() got multiple values for keyword argument 'input_formats'

https://docs.djangoproject.com/en/1.8/ref/forms/fields/#datefield

settings.py

...

USE_I18N = True

USE_L10N = True

...

我也尝试了内置的 SelectDateWidget,但没有成功,每次都产生无效的日期。也许有一些“缓存”问题: "Enter a valid date" Error in Django Forms DateField

我应该怎么做才能通过此验证检查并在适当的日期继续前进?文档是否缺少我遇到的错误?

【问题讨论】:

    标签: python django forms validation datefield


    【解决方案1】:

    input_formats 不是一个 kwarg,它是 DateField 的唯一选项。删除input_formats=

    ACCEPTED_FORMATS = ['%d-%m-%Y', '%d.%m.%Y', '%d/%m/%Y']
    
    class LeaveRequestForm(forms.Form):
        start_date = forms.DateField(ACCEPTED_FORMATS)
        end_date = forms.DateField(ACCEPTED_FORMATS)
        working_days = forms.IntegerField(min_value=1)
    

    【讨论】:

      猜你喜欢
      • 2018-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多