如何在模板中获取当前语言的日期格式?

时间:2017-05-15 12:00:31

标签: django django-templates

我发现了很多链接,但他们都要求提供日期格式。我不想要日期格式化,我想要当前语言的格式。而不是settings.LANGUAGE_CODE,而是当前请求之一(我不明白为什么很多答案都基于settings.LANGUAGE_CODE,因为如果用户想要更改语言,请使用settings.LANGUAGE_CODE不会改变格式......)。

到目前为止,我发现的唯一解决方案是为我的模板制作自己的自定义标记,如下所示:

@register.filter(name='locale_date_format')
def locale_date_format(arg1):
    """
    Returns the date format of the current locale
    Use:
        {{ request|locale_date_format }}

    Args:
        arg1: request
    """
    # a will contain something like '%m/d%/%y' -> convert it for dateselector
    a = formats.get_format('DATE_INPUT_FORMATS',
                           lang=arg1.LANGUAGE_CODE)[1]
    for old, new in [('%y', 'YYYY'),
                     ('%Y', 'YYYY'),
                     ('%d', 'DD'),
                     ('%m', 'MM'), ]:
        a = a.replace(old, new)
    return a

然后把它称之为:

{% load static i18n compress templates_extras %}
<html>
    <head>
    <script>
        var globDateFormat = '{{ request|locale_date_format }}';
    </script>
    </head>
</html>

然后我在jQuery datetimepicker中使用它。恕我直言,就像拿一把大锤来破解坚果一样。还有其他方法我找不到吗?

0 个答案:

没有答案