【问题标题】:Localizing DateField output format in Django ModelForm在 Django ModelForm 中本地化 DateField 输出格式
【发布时间】:2014-08-07 23:34:17
【问题描述】:

运行 Django 1.4.10。尝试在模型表单中设置日期的本地化。阅读docs,似乎只是在您的ModelForm 中的字段上设置localize=True 属性,并在您的设置中打开本地化。所以,我这样做:

my_field = DateField(localize=True)

在我的表单中,在设置中:

USE_L10N = True

然后我们愉快地进入表格,它部分工作。输入格式已本地化,因此对于北美,它显示:

"m/d/y"

但是当你第一次加载表单时,初始输出格式是默认的:

"y-m-d"

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

【问题讨论】:

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

标签: django django-forms


【解决方案1】:

好的,在这里回答我自己的问题,因为我有它的工作。您需要为小部件提供语言环境格式,以便输出也被格式化。我认为这是 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 列表中的最后一项返回短日期格式语言环境。不知道为什么会这样。

【讨论】:

    猜你喜欢
    • 2017-08-11
    • 2018-07-04
    • 2015-04-15
    • 2010-12-03
    • 2012-10-31
    • 1970-01-01
    • 2021-02-21
    • 2010-11-19
    • 2017-03-25
    相关资源
    最近更新 更多