Django:根据设置设置设置日期格式,代码中的语言代码(例如消息)

ff29svar  于 2023-06-25  发布在  Go
关注(0)|答案(1)|浏览(82)

在我的Django 4.2应用程序的settings.py中,我有

# Internationalization
# https://docs.djangoproject.com/en/4.0/topics/i18n/

LANGUAGE_CODE = "de-CH"

TIME_ZONE = "CET"

USE_I18N = True

USE_TZ = True

其在模板中工作,例如{{ training.date | date:"l, j. M." }}显示为Sonntag, 11. Jun.
但是,如果我在代码中使用strftime,例如

self.success_message = (
    f"Eingeschrieben für <b>{self.date.strftime('%A')}</b>, "
    f"den {self.date.strftime('%d. %B %Y')}.".replace(" 0", " ")
)

最后得到Eingeschrieben für Thursday, den 15. June 2023.
如何从代码中根据settings.LANGUAGE_CODE获取日期字符串?

tuwxkamq

tuwxkamq1#

format_date在这里会很好,它根据当前区域设置获取日期的字符串表示
首先,我们导入from django.utils import formats,然后像这样更改代码

self.success_message = (
    f"Eingeschrieben für <b>{formats.date_format(self.date, 'l')}</b>, "
    f"den {formats.date_format(self.date, 'j. F Y')}.".replace(" 0", " ")
)

相关问题