1.在app目录下新建包,包名必须为templatetags
2.在该包下新建filters.py
from django.template import Library
#创建一个libray的对象
register = Library()
#过滤器就是函数,自定义过滤器至少有一个参数,前面的会传给它,至多有两个
@register.filter
def mod(num):
return num%2 == 0
@register.filter
def mod_val(num,val):
return num%val == 0
3.修改temp_filter.html
<!DOCTYPE html>
<html lang="en">
{% load filters %}
<head>
<meta charset="UTF-8">
<title>模板过滤器</title>
<style>
.red{
background-color:red
}
.yellow{
background-color:yellow
}
.green{
background-color:green
}
</style>
</head>
<body>
<ul>
{% for book in books %}
{# {% if book.id|mod %} #}
{% if book.id|mod_val:3 %}
<li class="red">{{book.btitle}}--{{book.bpub_date|date:'Y年-m月-d日'}}</li>
{% else %}
<li class="green">{{book.btitle}}--{{book.bpub_date|date:'Y年-m月-d日'}}</li>
{% endif %}
{% endfor %}
</ul>
{{content|default:'hello'}}
</body>
</html>
4.效果