码迷,mamicode.com
首页 > 其他好文 > 详细

Django 自定义tag 和 filter

时间:2018-07-16 21:10:40      阅读:158      评论:0      收藏:0      [点我收藏+]

标签:bubuko   meta   mytag   info   utils   n+2   import   .lib   创建   

 自定义tag 可以传递多个值,自定义filter最多值可以传递两个值

自定义filter 可以放在{% if %} 中,自定义tag 不可以

 

 

 

1.在  app 下新建一个package名字叫templatetags

技术分享图片

 

 

2.在templatetags下创建一个python 文件

技术分享图片

 

 

3. python中是自定义的代码

from django import  template
from  django.utils.safestring import  mark_safe


#register 是固定的变量名,不能改变
register = template.Library()


# 自定义tag 和 filter的不通之处只在于:
#     tag使用 @register.simple_tag 装饰器
#     filter使用 @register.filter 装饰器



@register.simple_tag
def myAdd(n):
    return n+200

@register.simple_tag
def myAdd2(n1,n2,n3):
    return n1+200+n2+n3

@register.filter
def myAddf(n):
    return n+100

@register.filter
def myAddf2(n1,n2):
    return n1+100+n2

 

 

4. 在HTML中使用自定义的tag 和filter

 

{% load myTag %}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>t8</title>
</head>
<body>
    <h1>template</h1>

{#    在HTML中使用{% load myTag %} 来引入自定义的文件#}
{#调用自定义tag#}
    {%  myAdd num %}
   {%  myAdd2 num 100 20 %}


{#    调用自定义filter#}
    {{  num | myAddf}}
{#    向自定义filter中传递两个参数#}
    {{  num | myAddf2:100}}


</body>
</html>

 

Django 自定义tag 和 filter

标签:bubuko   meta   mytag   info   utils   n+2   import   .lib   创建   

原文地址:https://www.cnblogs.com/gaizhongfeng/p/9319951.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!