Django 基础教程

Django 查询

Django 展示数据

Django Admin

Django 模板

Django 表单组件

Django 高级

Django FAQ

original icon
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.knowledgedict.com/tutorial/django-field-lookup-icontains.html

Django 字段查询关键字 icontains 筛选包含不区分大小写特定字符串详解,使用方法及示例

Django 字段条件查询关键字的全解 Django 字段条件查询关键字的全解


在 Django 中,icontains 是用于字段条件查询的过滤器之一。它用于在数据库中执行不区分大小写的子字符串查找。icontains 可以与查询集(QuerySet)一起使用,以找到包含特定子字符串的结果。

语法

Model.objects.filter(field__icontains='search_string')
  • Model : 是你要查询的模型类的名称。
  • field : 是模型类中的字段名称,它是你希望进行子字符串查找的字段。
  • search_string : 是你要查找的子字符串,它是不区分大小写的。

作用

icontains 过滤器的作用是筛选出包含指定子字符串的记录,忽略大小写的差异。

使用方法和使用场景

icontains 通常用于快速实现对文本字段的模糊搜索。例如,你可能有一个包含用户名称或产品标题的字段,而用户或客户在搜索时可能不会完全输入正确的大小写。这时使用 icontains 可以提供更灵活的搜索结果。

下面通过一个简单的代码示例来说明它的用法:

假设我们有一个 Django 模型 Product,其中包含一个字段 name,我们希望根据产品名称进行模糊搜索。

# models.py
from django.db import models

class Product(models.Model):
    name = models.CharField(max_length=100)

    def __str__(self):
        return self.name

现在我们将创建一些示例数据:

# 创建示例数据
p1 = Product.objects.create(name='Apple iPhone 12')
p2 = Product.objects.create(name='Samsung Galaxy S21')
p3 = Product.objects.create(name='OnePlus 9 Pro')
p4 = Product.objects.create(name='Google Pixel 5')

然后我们使用 icontains 过滤器进行搜索:

# 查询包含关键字 "iphone" 的产品,不区分大小写
results = Product.objects.filter(name__icontains='iphone')

# 输出结果
for product in results:
    print(product)

输出:

Apple iPhone 12

可以看到,我们成功地找到了包含"iphone"子字符串的产品,尽管在数据库中存储的产品名称是不同大小写的。

这就是 icontains 的简单示例和用法。它在类似搜索功能的开发中非常有用,可以让你更容易地处理用户的输入,提高了用户体验。

在Django中,contains是一种字段条件查询,它用于筛选包含特定字符串的数据记录。让我们详细介绍一下它的语法、作用、使用方法以及适用 ...
在Django中,iendswith是一个字段条件查询方法,用于在数据库查询中执行不区分大小写的以指定字符串结尾的条件过滤。例如,在用户管理 ...
在Django中,iregex是用于字段条件查询的一个查询操作,它允许进行不区分大小写的正则表达式匹配。使用方法使用iregex很简单,只需 ...
在Django中,istartswith是一种用于字段条件查询的查询表达式,它用于查找特定字段以指定字符串开头的对象。下面通过一个代码示例来 ...
其中,iexact是一种字段条件查询方法之一,它用于在数据库中执行大小写不敏感的精确匹配查询。使用场景iexact适用于那些需要对字符串字段 ...