运行Django 1.4.10。尝试在模型中设置日期的本地化。阅读docs,似乎只是在ModelForm中为您的字段设置localize = True属性,并在您的设置中启用本地化。所以,我这样做:
my_field = DateField(localize=True)
在我的表单中,这在设置中:
USE_L10N = True
然后我们愉快地去表格,它部分起作用。输入格式已本地化,因此对于北美地区,它显示:
"m/d/y"
但是,当您第一次加载表单时,初始输出格式是默认值:
"y-m-d"
根据文档,输出本地化应该与输入本地化一样有效。我做错了什么?
答案 0 :(得分:2)
好的,在这里回答我自己的问题,因为我有它的工作。您需要为窗口小部件格式提供要格式化的输出的窗口小部件。我认为这是Django中的一个错误。在任何情况下,该字段现在变为:
from django.utils import formats, translation
locale_format = formats.get_format('DATE_INPUT_FORMATS', lang=translation.get_language())[-1]
my_field = DateField(localize=True, widget=DateInput(format=locale_format))
locale_format列表中的最后一个条目返回短日期格式区域设置。不知道为什么会这样做。