<<<代码布局(自定义的代码放哪里)>>>
 (1)某个app特有的
   1.一般放app目录下 固定名为templatetags 的python文件夹里鸭,如果是别的名称,django是找不到的哦! django-5-自定义模板过滤器及标签 Python 第1张
   2.再在文件夹里面写模块
  (2)创建新的app,在里面加模块(**注意要注册app鸭!!!**) <<<自定义模板过滤器>>>
 首先创建模块,模块名固定为 customer_filters.py,如果是别的名字,运行会报错哦!! django-5-自定义模板过滤器及标签 Python 第2张
  (1)模板过滤器(其实就是函数啦!)
   1.有一个或两个参数
    第一个参数是 模板变量
    第二个参数是普通参数,也可以不要  (2)注册
    1.通过django.template.Library 它的实例的filter方法
     filter有两个参数
      name: 过滤器的名称,是一个字符串(如果不写name,函数名就是默认的filter名字哦!)
      filter_func:函数名       register = Library()
      register.filter(<function>)    2.通过装饰器
from django.template import Library

register = Library()

@register.filter()
def myfilter(value):
...

  django-5-自定义模板过滤器及标签 Python 第3张

    在模板中使用 django-5-自定义模板过滤器及标签 Python 第4张
      <<<自定义模板标签>>>
 (1)简单标签(本质也是函数):
   django.template.Library.simple_tag()  (2)创建:
   1.创建python模块,模块名固定为customer_tags.py,如果不是这个名字,也是会报错,真jer挑剔!! django-5-自定义模板过滤器及标签 Python 第5张
   2.注册
     @filter.simple_tag(name=<function>)
from django.template import Library

register = Library()

@register.simple_tag()
def tag():
...

  django-5-自定义模板过滤器及标签 Python 第6张

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
  **如果要拿到视图函数里面的context,则自定义标签函数的第一个参数是context
   其次让simple_tag函数中的take_context=True
  **  (3)使用:同样也要load django-5-自定义模板过滤器及标签 Python 第7张  (4)inclusion标签:
   通过渲染另一个模板来展示数据
   这里用inclusion_tag(‘模板的路径’)来装饰    **这个标签也可以拿到context,方法和simple_tag 一样**    
扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄