出于某种原因,我的表格不接受美国日期格式。我想知道是否有任何来自美国的 Django 开发人员可以帮助我解决这个问题。我怀疑设置中的时区也会影响日期格式,但我不确定。
设置:
TIME_ZONE = 'Europe/London'
LANGUAGE_CODE = 'en-us'
USE_I18N = True
USE_L10N = True
USE_TZ = True
模型形式:
class CallsForm(ModelForm):
class Meta:
model = Conversation
widgets = {
'contact_date': forms.DateInput(attrs={'placeholder': 'Add the date...', 'id': 'datepicker', 'class': 'placeholder_fix_css'}, format='%m/%d/%Y'),
}
任何想法?谢谢
更新:
我离正在发生的事情更近了一步:
MIDDLEWARE_CLASSES = (
...
'django.middleware.locale.LocaleMiddleware',
)
似乎只要加载了 LocaleMiddleware,Django 就会从我的浏览器会话中获取设置,因此日期格式更改为欧洲反映我的位置。聪明的。
现在以美国日期格式接受日期输入。在我得到的模板Aug. 31, 2012
中,这也是正确的。但是在表格中,一旦我尝试修改我得到的记录2012-08-31
?
这似乎不对。当然我可以用format='%m/%d/%Y'
它来覆盖它,但这不是硬编码和不好的做法吗?当然,表格必须依赖于当前文化的日期格式,即美国,但为什么没有发生呢?