You need to enable JavaScript to run this app. 如何在Django中通过CharField字段过滤CaseAlert模型对象
优惠活动
大模型
产品
解决方案
定价
更多

如何在Django中通过CharField字段过滤CaseAlert模型对象

问题原因

你使用了不符合Django ORM规范的查询语法,in_()是SQLAlchemy框架的查询写法,Django中做字段值在指定列表内的过滤,需要使用__in后缀的查询表达式。

修复方案

直接修改filter和order_by部分的参数即可,修复后的代码如下:

# views.py
cases_alerts = CaseAlert.objects.all().prefetch_related('reports').filter(
    alert_type__in=['u1']).order_by('alert_key')

补充说明

  • Django ORM的字段过滤统一使用字段名__查询类型的格式作为参数键,对应的值为过滤条件。除了__in之外,常用的查询类型还有__exact(精确匹配)、__contains(包含指定字符串)、__gt(大于指定值)等。
  • order_by方法直接传入字段名字符串即可,不需要写类名加字段名的形式;如果需要降序排序,在字段名前加负号即可,例如order_by('-alert_key')。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 00:30:01