如何在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
相关产品推荐
相关产品推荐

