在同一字段Django中查询多个

时间:2019-02-12 07:03:49

标签: django django-models django-views

functionalities.filter(acl_controller='Employee')

我要查询acl_controller ='Employee'和acl_controller ='Manager'和acl_controller ='Admin'的功能模型。我知道我可以使用多个过滤器-

functionalities.filter(acl_controller='Employee').filter(acl_controller='Manager').filter(acl_controller='Admin')

但是我想知道有没有更好的方法可以过滤掉。

2 个答案:

答案 0 :(得分:2)

您可以使用此:

functionalities.filter(acl_controller__in=['Employee', 'Manager', 'Admin'])

答案 1 :(得分:1)

您可以使用Q节点。参见this document

AND过滤

functionalities.filter(
    Q(acl_controller='Employee') &
    Q(acl_controller='Manager') &
    Q(acl_controller='Admin')
)

或过滤

functionalities.filter(
    Q(acl_controller='Employee') |
    Q(acl_controller='Manager') |
    Q(acl_controller='Admin')
)