Django自定义过滤器

Django自定义过滤器

1、在App建立文件夹 templatetags

2、在templatetags里 建立my_filter.py文件

例子:
# 需求:发表微博 或者 空间动态的时候  一般不会直接显示发布的精确时间  
#而是 刚刚   *分钟之前  *小时之前 *天前 超过这些时间  显示  年月日 时分秒  

from datetime import datetime
from django import template
register = template.Library()

def time_since(value):
   '''
   刚刚  1分钟以内
    大于1分钟 小于1小时  多少分钟之前
    大于1小时 小于 24小时 几个小时之前
    大于24小时 小于30天   几天前
   '''
   now = datetime.now()
   timestamp = (now-value).total_seconds()
   if timestamp < 60:
       return '刚刚来过'
   elif timestamp >= 60 and timestamp<3600:
       minutes = int(timestamp/60)
       return '%s 分钟前来过'%minutes
   elif timestamp >=3600 and timestamp < 60*60*24:
       hour = int(timestamp/3600)
       return '%s小时之前' % hour
   elif timestamp >= 60 * 60 * 24 and timestamp <= 60 * 60 * 24 * 30:
       days = int(timestamp / 60 / 60 / 24)
       return '%s天之前' % days
   else:
       return value.strftime("%Y-%m-%d %H:%M")


register.filter('times',time_since)  # 定义过滤器名

3、setting.py中

# 此处不设置,会报错 is not a registered tag library. Must be one of...

templates中中括号后
添加 
'libraries':{
                'my_customer_tags':  'APP名字.templatetags.过滤器文件名',
  }

4、网页模板中引入

{% load  过滤器文件名 %}

{{ value| 过滤器名 }}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值