如何使用IN筛选django模型以获取不包含在内的列表

时间:2019-04-11 09:25:54

标签: django django-models

我有一个基于模型的视图,用户可以使用以下类别基于类别字段过滤项目模型:

Items.objects.filter(categories__in=[‘A’, ’B’, ‘C’])

但是,在某些情况下,类别字段为NULL,并且用户可能希望查看NULL和A类别的列表。所以我尝试了:

Items.objects.filter(categories__in=[None, ‘A’])

但这无法正常工作,我的结果仅显示A,B和C

当然,这是该问题的简化视图,因为列表是动态的,并且还有很多其他过滤器。

但是原理是一样的,如何在IN操作列表中包含None

谢谢

1 个答案:

答案 0 :(得分:2)

Items.objects.filter(Q(categories__in=[‘A’, ’B’, ‘C’]) | Q(categories__isnull=True))