Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Django ModelForm中本地化DateField输出格式_Django_Django Forms - Fatal编程技术网

在Django ModelForm中本地化DateField输出格式

在Django ModelForm中本地化DateField输出格式,django,django-forms,Django,Django Forms,运行Django 1.4.10。正在尝试在modelforms中设置日期本地化。阅读,这似乎只是在ModelForm中的字段上设置localize=True属性,并在设置中启用本地化的一种情况。因此,我这样做: my_field = DateField(localize=True) 在我的表格中,以及在设置中: USE_L10N = True 然后我们愉快地进入表单,它部分地起作用。输入格式是本地化的,因此对于北美,它显示: "m/d/y" 但首次加载表单时,初始输出格式为默认格式: "y

运行Django 1.4.10。正在尝试在modelforms中设置日期本地化。阅读,这似乎只是在ModelForm中的字段上设置localize=True属性,并在设置中启用本地化的一种情况。因此,我这样做:

my_field = DateField(localize=True)
在我的表格中,以及在设置中:

USE_L10N = True
然后我们愉快地进入表单,它部分地起作用。输入格式是本地化的,因此对于北美,它显示:

"m/d/y"
但首次加载表单时,初始输出格式为默认格式:

"y-m-d"

根据文档,输出本地化应该和输入本地化一样有效。我做错了什么?

好的,在这里回答我自己的问题,因为我已经开始工作了。您需要为小部件提供要格式化的输出的区域设置格式。我猜这是Django的一个bug。在任何情况下,该字段现在变为:

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))

区域设置\格式列表中的最后一项返回短日期格式区域设置。不知道为什么会这样做。

你的模板是什么样子的?例如,您是否使用本地化模板标记?@patrick beeson-我的理解是这无关紧要-这是一个输入表单字段,我们需要以本地化格式显示初始输出,不是吗?