首页 > 解决方案 > 如何通过 CharField 过滤对象

问题描述

我想过滤cases_alert(类)CaseAlert.alert_type是一个CharField。但过滤函数的参数不是CharField

谁能帮我解决这个问题?谢谢你。

模型.py

class CaseAlert(models.Model):
    alert_type = models.CharField(max_length=16)

视图.py

cases_alerts = CaseAlert.objects.all().prefetch_related('reports').filter(
    CaseAlert.alert_type.in_(['u1'])).order_by(CaseAlert.alert_key)

标签: pythondjangoobjectfilterdjango-views

解决方案


您可以使用以下方式过滤:

CaseAlert.objects.prefetch_related('reports').filter(
    alert_type__in=['u1']
).order_by('alert_key')

如果列表仅包含一个元素,则不应使用__in查找 [Django-doc]

CaseAlert.objects.prefetch_related('reports').filter(
    alert_type='u1'
).order_by('alert_key')

推荐阅读