如何复制查询集输出
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)
当测试行同时满足条件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)