在 django 中,我如何过滤或排除多个东西?

Posted

技术标签:

【中文标题】在 django 中,我如何过滤或排除多个东西?【英文标题】:In django, how can I filter or exclude multiple things? 【发布时间】:2015-03-18 03:03:54 【问题描述】:

如果我有这个查询集:

player = basketball.objects.all()

如何在我要求多人时进行过滤?例如:我只希望名字是“mike”或“charles”的玩家出现。这似乎对我不起作用:

player.filter(name = 'mike' , 'charles')

有谁知道解决这个问题的最佳方法?

【问题讨论】:

【参考方案1】:

你可以使用__in:

player.filter(name__in=['mike', 'charles'])

【讨论】:

【参考方案2】:

除了使用__in,您还可以使用Q object 链接多个过滤器,因此objects.filter(q) 其中q = Q(Q(name="mike")|Q(name="phil"))

在这种情况下一定要使用__in

【讨论】:

以上是关于在 django 中,我如何过滤或排除多个东西?的主要内容,如果未能解决你的问题,请参考以下文章

Django REST Framework 中的否定或排除过滤器

如何从我的带注释的 Django 查询中过滤/排除非活动评论?

如何将三个或多个参数传递给自定义模板标签过滤器 django?

Graphene/Django (GraphQL):如何使用查询参数来排除与特定过滤器匹配的节点?

Django:过滤多个参数

Django ORM。如何排除旧数据?