自定义过滤器

1 步骤

  1. 一定要注意必须安装app
INSTALLED_APPS = ['django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles',# 必须安装的app"article"
]
  1. 创建一个templatetags python包, 文件夹下新建模块, 如custom.py

  2. 引入template.Library并实例化

from django import template
register = template.Library()
  1. 定义过滤器函数
def handle_date(value):pass
  1. 注册过滤器
# name: 过滤器名称, 默认为过滤器函数名
# filter_func: 过滤器函数
register.filter(name="date", filter_func=hand_date)

当然,你也可以使用register.filter装饰器完成第四三步

@register.filter("handDate")
def hand_date(value: datetime)->str:if not isinstance(value, datetime):return str(value)now = datetime.now()# 二个datetime对象相减 得到了一个 timedelta 对象# 利用 `total_seconds` 方法timeStamp = int((now - value).total_seconds())if 0 <= timeStamp <= 60:return "刚刚"elif 60 < timeStamp <= (60*60):return "%s分钟前" % (timeStamp//60)elif (60*60) < timeStamp <= (24*60*60):return "%s小时前" % (timeStamp//(60*60))elif (24*60*60) < timeStamp <= (30*24*60*60):return "%s天前" % (timeStamp//(24*60*60))elif (30*24*60*60) < timeStamp <= (12*30*24*60*60):return "%s月前" % (timeStamp//(30*2460*60))else:return value.strftime("%Y/%m/%d %H:%M")
  1. 利用load标签在模板引入过滤器, 一般直接引入模块名custom
{% load custom %}

这样你就可以愉快地在模板里面使用过滤器, 也完成自定义过滤器

注意

  1. 一定要检查App是否安装
  2. 注意templatetags命名

custom_filter相关推荐

  1. 用 Python 快速制作海报级地图

    作者:费弗里 来源:Python大数据分析 1 简介 基于Python中诸如matplotlib等功能丰富.自由度极高的绘图库,我们可以完成各种极富艺术感的可视化作品,关于这一点我在系列文章在模仿中精 ...

  2. python 包介绍:osmnx

    1 osmnx介绍 一个Python 包,可检索.建模.分析和可视化来自 OpenstreetMap 的街道网络. 2 graph模块 graph类型就是networkx 包中的graph类型.所以p ...

  3. 系统调用----sandir

    scandir函数:读取特定的目录数据 表头文件:#include   定义函数:int  scandir(const char *dir, struct dirent **namelist, nt ...

  4. web框架Django一

    一.django安装 # pip 安装 pip3 install Django# 克隆下载最新版本 git clone https://github.com/django/django.git# 导入 ...

  5. django-simple-captcha的使用

    django-simple-captcha是一个非常简单,但高度可定制的Django framework,可以向任何Django表单添加验证码图像 安装 pip3 install django-sim ...

  6. 项目一:CRM(客户关系管理系统)--9---自定制action

    现在该来添加前面提到的Action功能了,强大的它能干什么,先来体验一下原生admin中的效果. 1. 原生admin体验 默认的删除功能是可以进行批量删除的! 可以在后台进行自定义功能 在CRM应用 ...

  7. CppCheck:静态代码检测工具,让你的代码更安全

    除了官方GUI,还可支持与多种IDE(如VS.Eclipse.QtCreator)等集成使用. 主要功能: error:出现的错误 warning:为了预防bug防御性编程建议信息越 style:编码 ...

  8. 利用FFmpeg玩转Android视频录制与压缩(二)

    请尊重原创,转载请注明出处:http://blog.csdn.net/mabeijianxi/article/details/72983362 预热 时光荏苒,光阴如梭,离上一次吹牛逼已经过去了两三个 ...

  9. 前端ThinkJS框架解析

    Thinkjs 是一个快速.简单的基于MVC和面向对象的轻量级Node.js开发框架,遵循MIT协议发布.秉承简洁易用的设计原则,在保持出色的性能和至简的代码同时,注重开发体验和易用性,为WEB应用开 ...

最新文章

  1. esl8266开发之旅_从ESL老师到越南软件开发人员的旅程
  2. dfs-Rank the Languages
  3. qt5使用mysql
  4. HDU Problem - 6396 Swordsman(优先队列,模拟)
  5. Android之靠谱的把图片和视频插入手机系统相册
  6. Dockerfile 中 配置安装 php 扩展
  7. 60后即将退休的人,有多少存款就算富有了?
  8. 01.redis初识
  9. 怎么把java安装到64位_怎么安装64位JAVA,大师来详解
  10. 天知道-网络应用-Vue小案例-黑马程序员
  11. android ant下载安装,ANT+ Plugins
  12. 【爱思考】CISP考试试题介绍(其中一部分)
  13. 2019.08-2020.06计算机考研指导总结篇
  14. PostgreSQL13 安装
  15. linux 图片压缩命令,Linux:优化和压缩JPEG和PNG图片的命令行工具
  16. 以退为进还是被逼无奈?创始人王劲离职后,景驰科技该何去何从?
  17. 地图上分成一块一块区域 高德地图_高德地图绘制区域边界线
  18. 读书的意义—献给第19个世界读书日
  19. ReentrantReadWriteLock、StampedLock
  20. 理论力学知识要点归纳(一)

热门文章

  1. Wayfarer的《叩开C#之门》系列(图文并茂,推荐新手认真看一看)
  2. 基于DRV8701芯片的全桥驱动电路
  3. 华为——宏达电最需要害怕的新对手
  4. 美国知名科技博客简介
  5. 解决Springboot2.X,无法用HttpSession报错org.apache.tomcat.websocket.server.WsSessionListener.sessionCreated
  6. 面试题:不通过构造函数也能创建对象吗
  7. 【python】点燃我,温暖你 ,快来Get同款~
  8. html加css加js制作的烟花,js实现烟花特效
  9. POI问题总结,关于数字级联及多级级联(三级以上)
  10. 爬虫python代码网易云_爬虫实战(二) 用Python爬取网易云歌单