首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何让自定义模板过滤器不区分大小写?(Django 2.1)

在Django 2.1中,可以通过自定义模板过滤器来实现不区分大小写的功能。下面是一个完善且全面的答案:

在Django中,模板过滤器是一种用于修改模板变量输出的方法。默认情况下,Django的模板过滤器是区分大小写的,但是我们可以通过自定义模板过滤器来实现不区分大小写的功能。

要实现不区分大小写的自定义模板过滤器,可以按照以下步骤进行操作:

  1. 首先,在Django项目的某个应用中创建一个名为templatetags的文件夹(如果不存在的话)。
  2. templatetags文件夹中创建一个名为custom_filters.py的Python文件。
  3. custom_filters.py文件中,导入django.template模块,并创建一个名为register的实例。
代码语言:txt
复制
from django import template

register = template.Library()
  1. custom_filters.py文件中,定义一个名为case_insensitive_filter的函数作为自定义过滤器。
代码语言:txt
复制
@register.filter
def case_insensitive_filter(value, arg):
    return [item for item in value if item.lower() == arg.lower()]

在上述代码中,case_insensitive_filter函数接受两个参数:valueargvalue是要过滤的值,arg是过滤条件。函数使用列表推导式来遍历value中的每个元素,并将其转换为小写形式,然后与arg进行比较。如果相等,则将该元素添加到结果列表中。

  1. 在模板中使用自定义过滤器。

在需要使用自定义过滤器的模板中,首先需要在模板文件的开头加载自定义过滤器。可以使用load标签来加载自定义过滤器文件。

代码语言:txt
复制
{% load custom_filters %}

然后,就可以在模板中使用自定义过滤器了。假设我们有一个名为my_list的列表变量,我们可以使用case_insensitive_filter过滤器来过滤该列表。

代码语言:txt
复制
{{ my_list|case_insensitive_filter:"filter_value" }}

在上述代码中,case_insensitive_filter过滤器将my_list列表中与filter_value相等的元素过滤出来,并输出到模板中。

这样,就实现了不区分大小写的自定义模板过滤器。

推荐的腾讯云相关产品和产品介绍链接地址:

  • 腾讯云服务器(CVM):提供弹性计算能力,满足各种业务需求。产品介绍链接
  • 腾讯云对象存储(COS):提供安全、稳定、低成本的云端存储服务。产品介绍链接
  • 腾讯云数据库(TencentDB):提供高性能、可扩展的数据库服务,支持多种数据库引擎。产品介绍链接

请注意,以上推荐的腾讯云产品仅供参考,具体选择应根据实际需求进行评估。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 35.Django2.0文档

    如果我们想退出循环,可以改变正在迭代的变量,其仅仅包含需要迭代的项目。 同理,Django也不支持continue语句,我们无法当前迭代操作跳回到循环头部。...a multi‐line comment. {% endcomment %} 3.过滤器 模板过滤器是在变量被显示前修改它的值的一个简单方法。...该层处理与数据相关的所有事务: 如何存取、如何验证有效性、包含哪些行为以及数据之间的关系等    T:代表模板(Template),即表现层。...有些情况下,你可能想自定义一个标签。 你只需在模块中指定verbose_name。  举个例子,说明如何将Author.email的标签改为e-mail,中间有个横线。...除了这些,Django还提供了大量选项你针对特别的模块自定义管理工具。 这些选项都在ModelAdminclasses里面,这些类包含了管理工具中针对特别模块的配置。

    11.3K100

    Django 2.1.7 模板 - HTML转义

    相关篇章 Django 2.1.7 创建应用模板 Django 2.1.7 配置公共静态文件、公共模板路径 Django 2.1.7 模板语言 - 变量、标签、过滤器自定义过滤器模板注释 Django...2.1.7 模板继承 参考文献 https://docs.djangoproject.com/zh-hans/2.1/topics/templates/ HTML转义 模板对上下文传递的字符串进行输出时...关闭转义 过滤器escape可以实现对变量的html转义,默认模板就会转义,一般省略。 {{t1|escape}} 过滤器safe:禁用转义,告诉模板这个变量是安全的,可以解释执行。...这里关闭转义是一句句通过safe过滤器来编写,能不能直接给一段html关闭转义呢? 标签autoescape:设置一段代码都禁用转义,接受on、off参数。...autoescape off %} {{ content }} {{ content }} {{ content }} {% endautoescape %} 模板硬编码转义

    4.1K30

    django 1.8 自定义模板标签(simple_tag)和过滤器(filter)

    在Python中,你可以通过自定义标签或过滤器的方式扩展模板引擎的功能,并使用{{ load }}标签在你的模板中进行调用。 代码布局¶ 自定义模板标签和过滤器必须位于Django 的某个应用中。...()¶ 一旦你写好了你的自定义过滤器函数,你就开始需要把它注册为你的 Library实例,来它在Django模板语言中可用: register.filter('cut', cut) register.filter...过滤器和自动转义¶ 编写一个自定义过滤器时,请考虑一下过滤器如何Django 的自定转义行为相互作用。...编写自定义模板标签¶ 标签比过滤器更复杂,因为标签可以做任何事情。Django 提供了大量的快捷方式,使得编写大多数类型的标签更为容易。...别担心,Django 给你建立模板标签所需的从底层访问完整的内部。 概述¶ 模板系统的运行分为两步︰编译和渲染。若要定义一个自定义模板标签,你指定编译如何工作以及渲染如何工作。

    1.7K30

    Django教程 —— 模型类条件查询

    引言 在之前的 Django模型设计 中简单的介绍了如何利用模型类对数据库进行增删改查,在这篇中主要介绍使用模型类对数据库进行条件查询。大家更加熟悉 Django 操作数据库。...6000 8000 4 三少爷的剑 古龙 1977-08-01 3000 1000 5 笑傲江湖 金庸 1969-03-17 7000 9000 字段查询 实现 sql 中 where 的功能,调用过滤器...例:查询书名以’部’结尾的图书 books = BookInfo.objects.filter(title__endswith='部') 以上运算符都区分大小写,在这些运算符前加上 i 表示区分大小写...例:查询编号大于3的图书 books = BookInfo.objects.filter(id__gt=3) 不等于的运算符,使用exclude()过滤器。...,格式如下: {'聚合类小写__属性名':值} 如: {'sum__read': 29000} 使用 count 时一般不使用 aggregate() 过滤器

    1.1K20

    Django模型model

    前言 根据前几篇文章的分享已经了解djangoWeb开发一般步骤为: 创建虚拟环境 安装django 创建项目 创建应用 在model.py中创建模型类 定义视图 配置url 创建模板 1....Django的模型进行数据库的查询操作的接口,Django应用的每个模型都拥有至少一个管理器 自定义管理器类主要用于两种情况 向管理器类中添加额外的方法创建管理器对象保存数据到数据库 class TestInfoManager...来得到它所属的模型类 调用save()方法才与数据库交互,将对象保存到数据库中 使用关键字参数构造模型对象很麻烦,推荐使用下面的两种之式 说明: init 方法已经在基类models.Model中使用,在自定义模型中无法使用...模型类的查询 查询集表示从数据库中获取的对象集合 查询集可以含有零个、一个或多个过滤器 过滤器基于所给的参数限制查询的结果 从Sql的角度,查询集和select语句等价,过滤器像where和limit子句...filter(btitle__isnull=False) 在前面加个i表示区分大小写,如iexact、icontains、istarswith、iendswith in:是否包含在范围内

    13310

    django-5-自定义模板过滤器及标签

    >>  (1)某个app特有的    1.一般放app目录下 固定名为templatetags 的python文件夹里鸭,如果是别的名称,django是找不到的哦...**) >>  首先创建模块,模块名固定为 customer_filters.py,如果是别的名字,运行会报错哦!! ? (1)模板过滤器(其实就是函数啦!)    ...filter有两个参数       name: 过滤器的名称,是一个字符串(如果写name,函数名就是默认的filter名字哦!)       ...>>  (1)简单标签(本质也是函数):    django.template.Library.simple_tag()  (2)创建:    1.创建python模块,模块名固定为...**如果要拿到视图函数里面的context,则自定义标签函数的第一个参数是context    其次simple_tag函数中的take_context=True   **  (3)使用:同样也要load

    52310

    Django之templatetags自定义标签和过滤器的使用

    Django为我们提供了自定义的机制,可以通过使用Python代码,自定义标签和过滤器来扩展模板引擎,然后使用{% load %}标签。...一、前置步骤 Django对于自定义标签和过滤器是有前置要求的,首先一条就是代码布局和文件组织。 你可以为你的自定义标签和过滤器新开一个app,也可以在原有的某个app中添加。...它们分别位于django/template/defaultfilters.py和django/template/defaulttags.py中。它们是最好的范例! 二、自定义模板过滤器 1....自定义过滤器就是这么简单,使用起来也和普通的过滤器没什么区别。我们用Python的方式解决了HTML的问题。 三、自定义模板标签 标签比过滤器更复杂,因为标签可以做任何事情。...,前提是你绝对确保代码中包含XSS漏洞。

    1.6K20

    Django 模板

    目录 Django 模板 模板传值取值 后端传值 HTML取值 过滤器 default length filesizeformat date truncatechars truncatewords safe...模板继承 父模板模板模板如何划分区域 Django 模板 模板传值取值 后端传值 键值对形式:{‘name’:value} 精准传值,用啥传啥 函数:locals() locals()将当前名称空间中所有的变量名全部传递给页面...加 safe 过滤器是告诉 Django 该数据是安全的,不必对其进行转义,可以该数据语义生效(这里涉及到xss攻击自行查阅) from django.shortcuts import render...4、利用装饰器 @register.filter 自定义过滤器 注意:自定义过滤器也只能接收两个参数,因为|本质就是前面的参数交给后面过滤器处理,过滤器最强多可自带一个参数 '''my_tag.py'...子模板设置父模板预留区域的内容: {% block 名称 %} 子内容 {% endblock 名称 %} 子版也可以继续使用母版划定区域内的内容 {{ block.super }} 父模板如何划分区域

    4.8K10

    django 1.8 官方文档翻译:4-2-1 Django模版语言

    如果你使用Django模板系统,会处于保护之下。 如果关闭它 如果你希望数据自动转义,在站点、模板或者变量级别,你可以使用几种方法来关闭它。 然而你为什么想要关闭它呢?... 注释 通常,模板的作用并不非常担心自动转义。Python一边的开发者(编写视图和自定义过滤器的人)需要考虑数据不应被转移的情况,以及合理地标记数据,这些东西在模板中正常工作。...数据应该在视图中处理,然后传递给模板用于展示。 自定义标签和过滤器库 特定的应用提供自定义的标签和过滤器库。...例如: {% load humanize i18n %} 关于编写你自己的自定义模板库,详见自定义模板标签和过滤器。...自定义库和模板继承 当你加载一个自定义标签或过滤器库时,标签或过滤器只在当前模板中有效 – 并不是带有模板继承关系的任何父模板或者子模版中都有效。

    1.2K30

    Django 模型查询2.3

    简介 查询集表示从数据库中获取的对象集合 查询集可以含有零个、一个或多个过滤器 过滤器基于所给的参数限制查询的结果 从Sql的角度,查询集和select语句等价,过滤器像where和limit子句 接下来主要讨论如下知识点...查询集 字段查询:比较运算符,F对象,Q对象 查询集 在管理器上调用过滤器方法会返回查询集 查询集经过过滤器筛选后返回新的查询集,因此可以写成链式过滤 惰性执行:创建查询集不会带来任何数据库的访问...在前面加个i表示区分大小写,如iexact、icontains、istarswith、iendswith in:是否包含在范围内 filter(pk__in=[1, 2, 3, 4, 5]) gt、gte...,会合并为And进行 需要进行or查询,使用Q()对象 Q对象(django.db.models.Q)用于封装一组关键字参数,这些关键字参数与“比较运算符”中的相同 from django.db.models...AreaInfo.objects.get(pk=130100) return render(request, 'booktest/area.html', {'area': area}) 定义模板

    2.4K20

    Django之视图层与模板

    ,在发送给django 后会封装到request.body里,此时django为了方便我们提取数据,会request.body的数据进行进一步的处理,具 体如何处理呢,需要从form表单提交数据的编码格式说起...当内置的过滤器或标签无法满足我们的需求时,我们可以自定义标签和过滤器。...2.4.1自定义前的准备 django支持用户自定义过滤器和标签但前提必须要先执行以下三步: 1.在应用名下新建一个名为templatetags(必须是这个名字)的文件夹 2.在该文件夹内新建一个任意名称的...来自定义过滤器和标签了。...2.4.2自定义过滤器 @register.filter(name='test') def index(a,b): return a + b #name为给过滤器起的名字,可以自定义过滤器最多只能有两个参数

    9.2K10

    Django基础篇-模板加载静态文件

    自定义过滤器及标签 为了解决应用中展示逻辑的需求,Django模板语言提供了各式各样的 built-in tags and filters。...代码布局 指定自定义模板标签和过滤器的最常见的地方在 Django 应用程序中。...在模板中这样使用: {% load blog_filters %} ? 为了 {% load %} 标签工作,包含自定义标签的应用必须在 INSTALLED_APPS 中。...②编写自定义模板过滤器 自定义过滤器就是一个带有一个或两个参数的 Python 参数: (输入的)变量的值 —— 不一定是字符串形式。 参数的值 —— 可以有一个初始值,或者完全不要这个参数。...例如: def mylower(value): return value.lower() ③注册自定义过滤器 django.template.Library.filter() 自定义过滤器

    1.2K20

    Django(37)配置django日志

    前言   django框架的日志通过python内置的logging模块实现的,既可以记录自定义的一些信息描述,也可以记录系统运行中的一些对象数据,还可以记录包括堆栈跟踪、错误代码之类的详细信息。   ...False:已存在的logger不失效,保证日志信息完整。一般情况下设置为False incremental:默认为False。True:是将配置解释为现有配置的增量。...when='h', interval=1, backupCount=0, encoding=None, delay=False, utc=False, atTime=None when:时间间隔类型,区分大小写...django记录器的子记录器,处理ERROR级别及以上的日志,propagate设置为 False,表明传播日志给 “django”,该logger传递日志到mail_admins控制器 myproject.custom...django.template:记录与模板呈现相关的消息 django.db.backends:记录代码和数据库交互相关的消息 django.security.

    5.6K20

    【愚公系列】2022年01月 Python教学课程 52-Django框架之jinja2模板

    文章目录 一、Django使用jinja2模板 1.Django配置jinja2 2.Jinja2语法 3.jinja2模板的使用循环索引 4.jinja2自定义过滤器 5.Jinja2 宏 6.Jinja2... Jinja2自带过滤器 过滤器名 说明 safe 渲染时值转义 capitialize 把值的首字母转换成大写,其他子母转换为小写 lower 把值转换成小写形式 upper 把值转换成大写形式...4.jinja2自定义过滤器 Django文档 在jinja2_env.py文件中自定义过滤器 from jinja2 import Environment def environment(**...options): env = Environment(**options) # 2.将自定义过滤器添加到 环境中 env.filters['do_listreverse']...= do_listreverse return env # 1.自定义过滤器 def do_listreverse(li): if li == "B": return

    1.3K40

    实战演示Django自定义模板过滤器应用

    这些标签和过滤器涵盖了Django Web开发过程中常见的各种模板处理场景,但是如果你的需求有一些特殊,或者由于种种原因,内建的标签和过滤器满足不了项目的功能需要,那么可能就需要自定义标签和过滤器。...关于如何自定义Django模板标签和过滤器,在Django的官方文档上有比较详细的介绍,但是缺少足够清晰的实例说明,所以本篇文章将以开源文档写作应用——MrDoc的源码,来演示讲解自定义Django模板过滤器...在这种情况下,MrDoc采用的Django自定义模板过滤器的方法,来实现上述功能。...二、创建过滤器Django自定义模板标签和过滤器,一共需要三步: 第一、在任意一个app下创建一个templatetags 包,也就是包含__init__.py文件的文件夹。...这样,我们就借助Django自定义模板过滤器,实现了前台页面上文集文档层级显示的效果了。 ?

    59810

    Django中数据库的相关操作

    >>> HeroInfo.objects.create( hname='沙悟净', hgender=0, hbook=book ) 2 查询 2.1 基本查询...例:查询书名以’部’结尾的图书 BookInfo.objects.filter(btitle__endswith='部') 以上运算符都区分大小写,在这些运算符前加上i表示区分大小写,如iexact、...当调用如下过滤器方法时,Django会返回查询集(而不是简单的列表): all():返回所有数据。 filter():返回满足条件的数据。 exclude():返回满足条件之外的数据。...过滤器基于所给的参数限制查询的结果。 从SQL的角度讲,查询集与select语句等价,过滤器像where、limit、order by子句。...优质文章推荐: 公众号使用指南 redis操作命令总结 前端中那些你头疼的英文单词 Flask框架重点知识总结回顾 项目重点知识点详解 难点理解&面试题问答 flask框架中的一些常见问题 团队开发注意事项

    2.2K50
    领券