为什么链过滤仅返回第一个过滤的查询集?

时间:2020-08-12 06:55:51

标签: django

假设我有一个查询集数字:

nums = [1,2,3,4,5,6,7,8]

数字1和2的创建者是:user1

数字4、5和6的创建者是:user2

然后我有以下代码:

queryset = nums.objects.all()
queryset = queryset.filter(creator=user1)
queryset = queryset.filter(creator=user2)

为什么它只返回1,2? 如果我正确理解了文档,则应返回1,2,4,5,6

1 个答案:

答案 0 :(得分:0)

尝试以下方式:

queryset = nums.objects.all()
queryset1 = queryset.filter(creator=user1)
queryset2 = queryset.filter(creator=user2)
final_result = queryset1 | queryset2

或使用Q

from django.db.models import Q

queryset = nums.objects.filter(Q(creator=user1) | Q(creator=user2))