在Django框架中自定义模板过滤器的方法
作者:goldensun 发布时间:2021-02-11 20:14:49
标签:Django,过滤器
自定义过滤器就是有一个或两个参数的Python函数:
(输入)变量的值
参数的值, 可以是默认值或者完全留空
例如,在过滤器 {{ var|foo:"bar" }} 中 ,过滤器 foo 会被传入变量 var 和默认参数 bar。
过滤器函数应该总有返回值。 而且不能触发异常,它们都应该静静地失败。 如果出现错误,应该返回一个原始输入或者空字符串,这会更有意义。
这里是一些定义过滤器的例子:
def cut(value, arg):
"Removes all values of arg from the given string"
return value.replace(arg, '')
下面是一个可以用来去掉变量值空格的过滤器例子:
{{ somevariable|cut:" " }}
大多数过滤器并不需要参数。 下面的例子把参数从你的函数中拿掉了:
def lower(value): # Only one argument.
"Converts a string into all lowercase"
return value.lower()
当你定义完过滤器后,你需要用 Library 实例来注册它,这样就能通过Django的模板语言来使用了:
register.filter('cut', cut)
register.filter('lower', lower)
Library.filter() 方法需要两个参数:
过滤器的名称(一个字串)
过滤器函数本身
如果你使用的是Python 2.4或者更新的版本,你可以使用装饰器register.filter():
@register.filter(name='cut')
def cut(value, arg):
return value.replace(arg, '')
@register.filter
def lower(value):
return value.lower()
如果你想第二个例子那样不使用 name 参数,那么Django会把函数名当作过滤器的名字。
下面是一个完整的模板库的例子,它包含一个 cut 过滤器:
from django import template
register = template.Library()
@register.filter(name='cut')
def cut(value, arg):
return value.replace(arg, '')


猜你喜欢
- 场景描述在update表的时候出现DeadlockLoserDataAccessException异常 (Deadlock found wh
- 本文实例讲述了Python实现字典按照value进行排序的方法。分享给大家供大家参考,具体如下:先说几个解决的方法,具体的有时间再细说d =
- 实时读取logstash日志,有异常错误keywork即触发报警。# /usr/bin/env python3# -*- coding: u
- 为什么要使用滤波消除图像中的噪声成分叫作图像的平滑化或滤波操作。信号或图像的能量大部分集中在幅度谱的低频和中频段是很常见的,而在较高频段,感
- 我想大多数的人在编写ASP程序的时候,都碰到过类似的错误信息: Error Number -> 
- 起源当同一个远程服务器有多个人使用的时候,想知道服务器是否有人在用,我们不能直接的去登录,因为这样可能会把对方挤下来,这并不友好,所以这里提
- Access 连接字符串 strConnect = “Provider=Microsoft.Jet.OLEDB.4.0;
- Wake-On-LAN简称WOL,是一种电源管理功能;如果存在网络活动,则允许设备将操作系统从待机或休眠模式中唤醒。许多主板厂商支持IBM提
- 本文实例讲述了sql server实现递归查询的方法示例。分享给大家供大家参考,具体如下:有时候面对树结构的数据时需要进行递归查询,网上找了
- 忽略循环引用在 .NET 5 中,如果存在循环依赖, 那么序列化的时候会抛出异常, 而在 .NET 6 中, 你可以选择忽略它。Catego
- 问题如图:想要删除产品表的主键约束,但是报错创建的产品表:CREATE TABLE PROVIDERS(PROVIDERID INT NOT
- 阅读上一篇:W3C优质网页小贴士(二) 注意字体大小网页设计者中有这么一种倾向:他们认为小字体能让网页看起来更漂亮,并能提供更多空间给每个网
- 本文实例讲述了ThinkPHP5&5.1实现验证码的生成、使用及点击刷新功能。分享给大家供大家参考,具体如下:验证码现在是用户登录、
- 这里我不讨论 python 的一些有用的库或者框架,只从语言本身,最小支持的情况下谈论这门语言本身。语言的发展都是越来越接近Lisp,这也是
- 本文实例讲述了PHP实现的XXTEA加密解密算法。分享给大家供大家参考,具体如下:<?php/** * Xxtea 加密实现类 */c
- zip文件是我们经常使用的打包格式之一,python解压和压缩zip效率非凡。 python解压zip文档:#/usr/bin/python
- 介绍reflect包实现运行时反射,允许一个程序操作任何类型的对象。典型的使用是:取静态类型interface{}的值,通过调用TypeOf
- 如题,首先读取视频路径,其次根据视频名称创建对应的文件夹,再逐帧将视频帧读入。import cv2import argparseimport
- 本文实例讲述了thinkPHP框架实现类似java过滤器的简单方法。分享给大家供大家参考,具体如下:写java web代码的时候,可以定义过
- 1、通过复制数据构造张量1.1 torch.tensor()torch.tensor([[0.1, 1.2], [2.2, 3.1], [4