自定义过滤器与标签

使用前提

  • 首先在app目录下创建templatetags
    • 注:此文件夹名不可写错
  • 在此文件夹下创建,自定义过滤器及标签的文件
  • 激活此app或将此文件夹作为app注册

自定义过滤器

  • 使用前需要导入和实例化对象

    from django import template
    register = template.Library()  #实例化对象
  • 使用声明所写函数

    @register.filter() #写括号在括号内写想要的名字 若不写使用函数名
  • 编写函数达到自己的目的

    #传入数据进行排序并返回结果
    @register.filter
    def my_sor(value):
        a = sorted(value)
        return  a
    
    #重新取名为 myup
    @register.filter('myup')
    def my_upper(value):
        return value.upper()
    
    #传参数
    @register.filter
    def my_cut(value,arg):
        return value.replace(arg,'B')
  • 在模版中使用

    • 在需要使用的地方使用{% load 自己所写文件名 %}

自定义标签

#自定义标签
import datetime
@register.simple_tag #可在括号内另取名
# @register.simple_tag() #可在括号内另取名
def current_time1():
    Time_str = '%Y-%m-%d, %H:%M:%S'
    return datetime.datetime.now().strftime(Time_str)

@register.simple_tag
def current_time2(Time_str):  #使用视图传来的参数
    return datetime.datetime.now().strftime(Time_str)

@register.simple_tag()
def add(a,d):
    c = a+d
    return c

@register.simple_tag(takes_context=True)#允许使用上下文
def cuettr3(context):
    Time_str = context.get('Time_str') #通过视图获取到键得到值
    return datetime.datetime.now().strftime(Time_str)

@register.inclusion_tag('show_tag.html')
def show_restag():   #此为自定义的包含标签
    li = ['wed','c++','python','java'] #操作后台数据
    return {'choicse':li}  #返回给show_tag.html里的字典对像


@register.inclusion_tag('show_tag.html')
def show_restag1(li):
    return {'choicse':li}  #操作视图里传来的数据

@register.inclusion_tag('show_tag.html',takes_context=True)
def show_restag2(context):
    date = context.get('li') #操作上下文
    # return date
    return {'choicse':date}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值