Python Django datetimefield对于某些地区无效

Python Django datetimefield对于某些地区无效,python,django,django-1.7,Python,Django,Django 1.7,我没有定义任何日期输入格式,我的表单字段是: expiry_date = forms.DateTimeField(widget=SelectDateWidget, required=False) 我正在使用地区en(英语)和zh-hans(简体中文) 根据PyCharm调试器,POST值在两种语言中都是相同的: self.request.POST['expiry_date_day'] = u'25' self.

我没有定义任何日期输入格式,我的表单字段是:

    expiry_date = forms.DateTimeField(widget=SelectDateWidget,
                                      required=False)
我正在使用地区
en
(英语)和
zh-hans
(简体中文)

根据PyCharm调试器,POST值在两种语言中都是相同的:

self.request.POST['expiry_date_day'] = u'25'
self.request.POST['expiry_date_month'] = u'9'
self.request.POST['expiry_date_year'] = u'2015'
但是,我只在
zh hans
中得到错误

form.clean()
方法中,缺少
self.cleaned\u data['expiration\u date']
值,因此我猜它是由于之前的验证错误失败而被删除的

已修复

我通过将以下内容添加到我的设置中修复了此问题:

DATE_INPUT_FORMATS = ('%Y-%m-%d', '%Y/%m/%d')
然后将其应用于特定的DateTime字段:

expiry_date = forms.DateTimeField(widget=SelectDateWidget,
                                  input_formats=settings.DATE_INPUT_FORMATS,
                                  required=False)
具体地说,
'%Y-%m-%d'
需要保持
en
的快乐,而
'%Y/%m/%d'
允许
zh hans
zh hant
正常工作

我通过深入调试器并找出通过
DateTimeField.to_python()
传递的值来发现这一点

不过,我还是不想回答这个问题,因为我仍然想确切地理解为什么它们按区域设置的格式不同,以及是否有更明显的方法来确定允许哪些格式以及何时允许,我认为解决方案不应该是“逐步通过调试器,直到找到代码行!”