特殊的标签和过滤器

阅读: 22840     评论:0

国际化标签和过滤器

Django还提供了一些模板标签和过滤器,用以控制模板中国际化的每个方面。它们允许对翻译,格式化和时区转换进行粒度控制。

i18n

此标签允许在模板中指定可翻译文本。要启用它,请将USE_I18N设置为True,然后加载{% load i18n %}

l10n

此标签提供对模板的本地化控制,只需要使用{% load l10n %}。通常将USE_L10N设置为True,以便本地化默认处于活动状态。

tz

此标签对模板中的时区进行控制。 像l10n,只需要使用{% load tz },但通常还会将USE_TZ设置为True,以便默认情况下转换为本地时间。

其他标签和过滤器库

Django附带了一些其他模板标签,必须在INSTALLED_APPS设置中显式启用,并在模板中添加{% load %}标记。

django.contrib.humanize

一组Django模板过滤器,用于向数据添加“人性化”,更加可读。

static

提醒:早期版本中的{% load staticfiles %}已经作废。

由于默认情况下,settings的INSTALL_APPS中已经添加了'django.contrib.staticfiles',,所以我们可以直接load加载static标签,然后在模板中使用它们。

static标签用于链接保存在STATIC_ROOT中的静态文件。例如:

{% load static %}
<img src="{% static "images/hi.jpg" %}" alt="Hi!" />

还可以使用变量:

{% load static %}
<link rel="stylesheet" href="{% static user_stylesheet %}" type="text/css" media="screen" />

还可以像下面这么使用:

{% load static %}
{% static "images/hi.jpg" as myphoto %}
<img src="{{ myphoto }}"></img>

get_static_prefix

如果你需要更好地控制将STATIC_URL注入到模板的位置和方式,可以使用get_static_prefix 模板标签,比如:

{% load static %}
<img src="{% get_static_prefix %}images/hi.jpg" alt="Hi!">

如果您多次需要该值,则可以使用第另一种形式来避免额外的处理:

{% load static %}
{% get_static_prefix as STATIC_PREFIX %}

<img src="{{ STATIC_PREFIX }}images/hi.jpg" alt="Hi!">
<img src="{{ STATIC_PREFIX }}images/hi2.jpg" alt="Hello!">

我们可以实际测试一下效果。

get_media_prefix

和上面的类似,不过是服务于媒体文件的。

{% load static %}
<body data-media-url="{% get_media_prefix %}">

 Django内置过滤器 人类可读性 

评论总数: 0


点击登录后方可评论