Python django日期输入格式

Python django日期输入格式,python,django,date,django-forms,Python,Django,Date,Django Forms,我使用的是Django1.7和Python2.7,我使用的是模型表单 我有一个模板,允许以某种方式设置日期格式: DATE_INPUT_FORMATS = ( '%m. %Y', # mm. yyyy (. and two space separator). '%m. %Y', # mm. yyyy (. and one space separator). '%m.%Y', # mm.yyyy (dot separator). '%m-%Y', #

我使用的是Django1.7和Python2.7,我使用的是模型表单

我有一个模板,允许以某种方式设置日期格式:

DATE_INPUT_FORMATS = (

    '%m.  %Y',  # mm.  yyyy (. and two space separator).
    '%m. %Y',  # mm. yyyy (. and one space separator).
    '%m.%Y',  # mm.yyyy (dot separator).
    '%m-%Y',  # mm-yyyy (dash separator).
    '%Y.%m',  # yyyy.mm (dot separator).
    '%Y/%m',  # yyyy/mm (forward slash separator).
    '%Y-%m',  # yyyy-mm (dash separator).
    '%m/%Y',  # mm/yyyy (forward slash separator) (default date format).

)
我已设置模型表单,以允许日期字段的输入格式为:

input_formats = {
    'award_grant_date': settings.DATE_INPUT_FORMATS,
}
但上面的代码总是返回一个输入错误,即“输入有效日期”

因此,我阅读了一些So线程,并在模型表单的init中输入了以下代码行,以使日期输入正常工作:

self.fields['award_grant_date'].input_formats = (settings.DATE_INPUT_FORMATS)

因此,我的问题是:为什么表单模型的输入格式不起作用,但表单模型init中的代码起作用?这可能是一个简单的答案,但我在文档或其他帖子中找不到答案。

您使用的是DateField还是DateTimeField?对于后者,您需要设置
DATETIME\u输入\u格式
。另外,文档中没有提到在表单上设置
input\u formats
字段,而是字段属性,这就是您找到的解决方案能够工作的原因。