如何复制查询集输出

How to duplicate queryset output

当测试行同时满足条件1和条件2时,有没有办法将查询集打印两次?我搜索了很多解决方案,但只显示了 distinct() 重复查询集的方法,并且无法多次打印重复查询集。

condition_1 = Student.objects.filter(Q(register_date__gte=from_date) & Q(register_date__lte=to_date))

condition_2 = Student.objects.filter(Q(eating_date__gte=from_date) & Q(eating_date__lte=to_date))

gap = ETC.objects.filter(Q(id__in=condition_1)) | Q(id__in=gap_condition_2))\
        .annotate(total_gap=('create_date', filter=Q(id__in=condition_1.values('id')) +
                             'create_date', filter=Q(id__in=condition_2.values('id')))

您可以使用union合并两个查询集的结果,传递all=True允许重复

all_students = condition_1.union(condition_2, all=True)