Python 如何在django queryset中解决此特定查询

Python 如何在django queryset中解决此特定查询,python,django,Python,Django,这是django中的用户映射器模型。 我希望编写一个查询,以便: 获取foo_id=2、type=0的所有用户_id以及用户_id=6的所有结果; 说, 在django查询集中我该怎么做?如果您指的是用户id=6,类型=6,食物id=2,那么只需使用: select * from table where user_id = 6 and (foo_id=2 and type=6) // Such sort of query UserMapper.objects.filter(user_id=6)

这是django中的用户映射器模型。 我希望编写一个查询,以便:

获取foo_id=2、type=0的所有用户_id以及用户_id=6的所有结果; 说,

在django查询集中我该怎么做?

如果您指的是用户id=6,类型=6,食物id=2,那么只需使用:

select * from table where user_id = 6 and (foo_id=2 and type=6) // Such sort of query
UserMapper.objects.filter(user_id=6).filter(food_id=2).filter(type=6)
如果您的意思是user_id=6或type=6和food_id=2,则可以使用Q对象:

UserMapper.objects.filter(user_id=6, type=6, food_id=2)
请在此处查看有关Q对象的更多信息:

UserMapper.objects.filteruser=user.filterfoo=foo.filtertype=0


其中user是id为6的用户对象,foo是id为2和0的foo,如果使用某种类型,可能会更好。使用某种类型,而不仅仅是使用0。

您的SQL与您对所需内容的描述不匹配。你的意思是用户id=6或食物id=2且类型=6吗?我的意思是用户id=6且食物id=2且类型=6,但这与用户id=6且食物id=2且类型=6的情况相同-即匹配所有三个条件,因此示例中的任何行都不会匹配。你确定这就是你的意思吗?
UserMapper.objects.filter(user_id=6, type=6, food_id=2)
from django.db.models import Q
UserMapper.objects.filter(Q(user_id=6) | Q(type=6, food_id=2))