自定义Django过滤器标签
django的过滤器很多,自带的过滤器能满足我们绝大部分的工作要求,但是当我们有特别的需求的时候就需要自定义了。
创建templatetags文件夹
注意,这个文件夹的名字是唯一的,不能更改成其他名字,文件夹在创建完成之后会新建一个__init__.py文件,再在此文件夹下面创建一个python文件,这个名字可以自定义
#myfilters.py文件的内容
from django import template
# 创建一个Library类的对象
register = template.Library()
# 自定义过滤器,至少要有一个参数,最多两个参数
@register.filter(name="mod")
def mod(num):
'''判断num是否为偶数'''
return num % 2 == 0
@register.filter(name="mod_val")
def mod_val(num,val):
'''判断nume是否能被val整除'''
return num%val == 0
- 过滤器其实就是python的函数
- 自定义过滤器目前支持1个参数和两个参数的,不支持其他
- 一个参数就是过滤器前面的变量{% if value|mod%}
- 完成函数的功能要对函数进行注@register.filter(name=“mod_val”)
<!DOCTYPE html>
{% load myfilters %}
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
{% for value in values %}
{% if value|mod %}
{{value}}是偶数<br>
{% else %}
{{value}}是奇数数
{% endif %}
{% endfor%}
</body>
</html>
- 调用的时候要先导入过滤器的包{% load myfilters %}
- 使用的时候还是跟系统的过滤器是一样的用法
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)