gpt4 book ai didi

python - Django DATE_FORMAT 工作日名称

转载 作者:行者123 更新时间:2023-12-01 07:18:28 25 4
gpt4 key购买 nike

我想在 Django 中格式化日期对象。具体来说,我想在 settings.py 中使用 DATE_FORMAT。使用Django Documentation ,我将其设置为:DATE_FORMAT = 'l, m F Y'。小写的 l 表示工作日名称。

在模板中,我使用 {{ value|date:"DATE_FORMAT"}},但它从不呈现工作日名称。
如果我执行:{{ value|date:"l, m F Y"}},我会得到预期的结果。

settings.py 中允许的内置日期过滤器是否有任何限制?

谢谢!

最佳答案

简短回答:由于本地化 (L10N),语言定义的格式优先于您定义的格式。

发生这种情况的原因可能是因为您启用了 L10N,这意味着您没有使用 settings.py 中指定的 DATE_FORMAT 。这在 the documentation on DATE_FORMAT 中指定。 :

Note that if USE_L10N is set to True, then the locale-dictated format has higher precedence and will be applied instead

因此,通过在您的设置中设置 L10N = True,如果为该语言定义了此类格式,它将采用该格式,而不是您指定的格式。

事实上,如果我们导入django.conf.locale.en.formats,我们会看到:

>>> import django.conf.locale.en.formats
>>> django.conf.locale.en.formats.DATE_FORMAT
'N j, Y'

因此,由于 L10N,它被渲染为 'N j, Y',事实上,如果我们使用该格式渲染时间戳,则两者是相同的:

>>> Template('{{ value|date:"DATE_FORMAT" }}').render(Context({'value': timezone.now()}))
'Sept. 7, 2019'
>>> Template('{{ value|date:"N j, Y" }}').render(Context({'value': timezone.now()}))
'Sept. 7, 2019'

您可以将USE_L10N设置为False,从而使用指定的格式。

# settings.py

# ...

USE_L10N = <b>False</b>

# ...

或手动指定格式。但通常 L10N 用于根据以事件语言显示日期的首选方式来格式化日期(和其他元素)。

关于python - Django DATE_FORMAT 工作日名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57832479/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com