You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django模型中如何按Name和Vendor包含指定词过滤对象?

Django Hat模型多字段模糊筛选实现方法

针对你给出的Hat模型,要筛选**Name字段包含"Green",或Vendor字段包含"Green"**的对象,需要用Django的Q对象实现逻辑“或”查询,同时修正原代码里的语法问题:

原代码的问题

  1. 查询参数拼写错误:__contain应为__contains(双下划线结尾加s)
  2. 列表推导式语法错误:不需要[for ...]的错误格式,直接用list()转换查询集更简洁
  3. 未处理“或”逻辑,原代码仅筛选了Name字段的情况

正确实现步骤

  1. 先导入Django的Q对象和Hat模型:
from django.db.models import Q
from .models import Hat
  1. 编写筛选查询:
# 筛选Name包含"Green" 或者 Vendor包含"Green"的Hat对象
filtered_hats = Hat.objects.filter(Q(Name__contains="Green") | Q(Vendor__contains="Green"))

# 如果需要转换成列表格式
hat_list = list(filtered_hats)

补充说明

  • __contains是区分大小写的模糊匹配,若需忽略大小写(比如匹配"green"、"GREEN"),可替换为__icontains
  • Q对象用|表示逻辑“或”,逻辑“与”可直接在filter中传多个参数,或用&连接Q对象

内容的提问来源于stack exchange,提问作者Kieran

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 06:40:19