应用名/templatetags/filters.py(自定义过滤器函数,templatetags文件名固定):
# 自定义过滤器
# 过滤器其实就是python函数
from django.template import Library
# 创建一个Library类的对象
register = Library()
# 自定义的过滤器函数,至少有一个参数,最多两个。(第一个参数就是要过滤的模板变量)
@register.filter
def mod(num):
'''判断num是否为偶数'''
return num%2 == 0
@register.filter
def mod_val(num, val):
'''判断num是否能被val整除'''
return num%val == 0
demo.html(模板文件,使用自定义过滤器):
<!DOCTYPE html>
<html lang="en">
{% load filters %} {# load标签加载自定义过滤器的py文件。和templatetags/filters.py 的py文件名一致。 #}
<head>
<meta charset="UTF-8">
<title>模板过滤器</title>
</head>
<body>
<ul>
{# {% if book.id|mod %}#} {# 使用自定义的过滤器。需要先load自定义过滤器的py文件 #}
{% if book.id|mod_val:3 %} {# 使用自定义的过滤器 #}
。。。
{% else %}
。。。
{% endif %}
</ul>
</body>
</html>