pro*_*nte 2 django django-forms
运行 Django 1.4.10。尝试在模型表单中设置日期本地化。阅读文档,这似乎只是在 ModelForm 中的字段上设置 localize=True 属性,并在设置中打开本地化的情况。所以,我这样做:
my_field = DateField(localize=True)
Run Code Online (Sandbox Code Playgroud)
在我的表单中,在设置中:
USE_L10N = True
Run Code Online (Sandbox Code Playgroud)
然后我们愉快地进入表格,它部分起作用了。输入格式已本地化,因此对于北美,它显示:
"m/d/y"
Run Code Online (Sandbox Code Playgroud)
但是,当您第一次加载表单时,初始输出格式是默认的:
"y-m-d"
Run Code Online (Sandbox Code Playgroud)
根据文档,输出本地化应该和输入本地化一样工作。我究竟做错了什么?
好的,在这里回答我自己的问题,因为我已经成功了。您还需要为小部件提供区域设置格式,以便对输出进行格式化。我认为这是 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))
Run Code Online (Sandbox Code Playgroud)
locale_format 列表中的最后一项返回短日期格式区域设置。不知道为什么它会这样做。
| 归档时间: |
|
| 查看次数: |
2389 次 |
| 最近记录: |