django中自定义模板(simple_tag,filter)

注意:Django1.11以上才支持

(simple_tag)

a. app下创建templatetags目录
b. templatetags中任意xxoo.py文件
c. 创建template对象 register

from django import template

register = template.Library()

d.

例:
 @register.simple_tag
 def func(a1,a2)
        return a1+a2

e. settings中注册APP
f. 顶部 {% load xxoo %}
g. {% func 1 2 %}
h: {% func 1 2 as k %}
(k可以做循环操作)

缺点:
不能作为if条件
优点:
参数任意


(filter)

a. app下创建templatetags目录
b. templatetags中任意xxoo.py文件
c. 创建template对象 register

from django import template

register = template.Library()

d.

例:
 @register.filter
 def func(a1,a2)
        return a1+a2

e. settings中注册APP
f. 顶部 {% load xxoo %}
g. {{ 参数1|函数名:"参数2" }}
例:{{ a1|func:a2 }}

缺点:
最多两个参数,不能加空格
优点:
能作为if条件

你可能感兴趣的:(django中自定义模板(simple_tag,filter))