【问题标题】:Localize date times inside a Django templatetag在 Django 模板标签中本地化日期时间
【发布时间】:2017-03-05 10:51:25
【问题描述】:

我正在处理 Django 中的模板标签,它应该处理一些日期和时间格式。

我希望以荷兰语显示日期,但它总是以英语显示。

从 django 导入模板

register = template.Library()

@register.filter()
def get_date_string(event):
    if event.date_type == 1:
        retval = event.date_1.strftime("%-d %B %Y")
        if event.date_1_starttime is not None:
            retval += " van " + event.date_1_starttime.strftime("%H:%M")
        if event.date_1_endtime is not None:
            retval += " tot " + event.date_1_endtime.strftime("%H:%M")

        return retval

根据Python documentation %B 应该提供一个本地化的月份全名。

在我刚刚使用的模板中:

{{ object|get_date_string }}

我希望有人可以帮助我解决这个问题。

【问题讨论】:

  • 您能附上您的settings.py 文件吗?我认为由于语言设置,它会一直以英语返回

标签: python django


【解决方案1】:

感谢this answer,我才得以正常工作。

这是我的最终解决方案:

from django import template
from django.template.defaultfilters import date as _date

register = template.Library()


@register.filter()
def get_date_string(event):
    if event.date_type == 1:
        retval = _date(event.date_1)
        if event.date_1_starttime is not None:
            retval += " vanaf " + event.date_1_starttime.strftime("%H:%M")
        if event.date_1_endtime is not None:
            retval += " tot " + event.date_1_endtime.strftime("%H:%M")

        return retval

我所做的只是使用 Django 日期过滤器为我进行日期格式设置。

【讨论】:

    猜你喜欢
    • 2022-01-04
    • 1970-01-01
    • 2011-05-09
    • 1970-01-01
    • 2020-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-23
    相关资源
    最近更新 更多