加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

Django模板,变量,标签,过滤器,自定义标签过滤器

发布时间:2020-12-20 12:56:04 所属栏目:Python 来源:网络整理
导读:自定义标签过滤器 1、在settings中的INSTALLED_APPS配置当前app,不然django无法找到自定义的simple_tag 2、在app中创建templatetags模块(模块名只能是templatetags) 3、创建任意 .py 文件,如:my_tags.py from django import templatefrom django.utils.sa

自定义标签过滤器

1、在settings中的INSTALLED_APPS配置当前app,不然django无法找到自定义的simple_tag
2、在app中创建templatetags模块(模块名只能是templatetags)
3、创建任意 .py 文件,如:my_tags.py

from django import template
from django.utils.safestring import mark_safe
 
register = template.Library()   #register的名字是固定的,不可改变
 
 
@register.filter       # 自定义过滤器的装饰器
def filter_multi(v1,v2):
    return  v1 * v2

@register.simple_tag  # 自定义标签装饰器
def simple_tag_multi(v1,v2):
    return  v1 * v2

4、在使用自定义simple_tag和filter的html文件中导入之前创建的 my_tags.py
{% load my_tags %}
5、使用simple_tag和filter(如何调用)

{% load xxx %}  
      
# num=12
{{ num|filter_multi:2 }} #24
 
{{ num|filter_multi:"[22,333,4444]" }}
 
{% simple_tag_multi 2 5 %}  参数不限,但不能放在if for语句中
{% simple_tag_multi num 5 %}

注意:filter可以用在if等语句后,simple_tag不可以
{% if num|filter_multi:30 > 100 %} {{ num|filter_multi:30 }} {% endif %} 注意:filter只能最多传入两个参数,最少一个,simple_tag传入的参数不限

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读