模板过滤器
Django 模板系统具有内置标签和过滤器,这些标签和过滤器是模板内的功能,以特定方式呈现内容。可以使用管道指定多个过滤器,过滤器可以具有参数,就像在变量语法中一样。
{{ "MAINROAD 3222"|lower }} # mainroad 3222
{{ 10|add:15}} # 25
{{ "super"|add:"glue" }} # superglue
{{ "A7"|add:"00" }} # A700
{{ myDate | date:"D d M Y"}} # Wed 20 Jul 2016
可以在 https://docs.djangoproject.com/en/dev/ref/templates/builtins/#ref-templates-builtins-filters 找到可用的内置过滤器列表。
创建自定义过滤器
要添加自己的模板过滤器,请在 app 文件夹中创建名为 templatetags
的文件夹。然后添加一个 __init__.py
,以及包含过滤器的文件:
#/myapp/templatetags/filters.py
from django import template
register = template.Library()
@register.filter(name='tostring')
def to_string(value):
return str(value)
要实际使用过滤器,你需要将其加载到模板中:
#templates/mytemplate.html
{% load filters %}
{% if customer_id|tostring = customer %} Welcome back {% endif%}
技巧
尽管过滤器起初看起来很简单,但它可以做一些漂亮的事情:
{% for x in ""|ljust:"20" %}Hello World!{% endfor %} # Hello World!Hello World!Hel...
{{ user.name.split|join:"_" }} ## replaces whitespace with '_'
有关更多信息,另请参见模板标记 。