标签和过滤器

    • 创建自定义的标签和过滤器的步骤
        • 在app下创建Python Package并且要命名为templatetags

        

      • templatetags下创建py文件,例如my_tags.py

      • my_tags.py
        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
        13
        14
        15
        16
        17
        18
        19
        20
        from django import template
        from django.utils.safestring import mark_safe
         
        #register的名字是固定的,不可改变
        register = template.Library()
         
        #自定义标签
        @register.simple_tag
        def simple_tag_add(v1, v2):
            return v1 + v2
         
        #自定义过滤器
        @register.filter
        def filter_multi(v1, v2):
            return v1 * v2
         
        @register.simple_tag
        def my_input(id, arg):
            result = "<input type='button' name='%s' style='%s' />" % (name, arg,)
            return mark_safe(result)
        • 在html页面导入my_tags.py,并使用自定义标签和自定义过滤器
          1
          2
          3
          4
          {% load tags %}            
          {% simple_tag_add 100 200 %}
          {{ 10|filter_multi:2 }}
          {% my_input "my_input" " font-family: verdana, "ms song", 宋体, Arial, 微软雅黑, Helvetica, sans-serif; font-size: 12px;"> 
            • 注意:
              • 自定义标签不可以用在{% if %} {% endif %}    {% for %} {% endfor %} 语句中
              • 自定义过滤器可以
                • {% if 10|filter_multi:30 > 100 %}
                      {{ 10|filter_multi:30 }}
                  {% endif %}
原文地址:https://www.cnblogs.com/whnbky/p/11729782.html