django queryset合并
时间: 2023-10-16 14:08:27 浏览: 108
在 Django 中,可以使用 `QuerySet` 的 `union()` 方法来合并两个或多个 `QuerySet` 对象。 `union()` 方法返回一个新的 `QuerySet` 对象,该对象包含两个或多个 `QuerySet` 中的所有对象,不包含重复项。下面是一个示例:
``` python
from django.db.models import Q
# 合并两个QuerySet
queryset1 = Model.objects.filter(Q(field1='value1') | Q(field2='value2'))
queryset2 = Model.objects.filter(Q(field3='value3') | Q(field4='value4'))
merged_queryset = queryset1.union(queryset2)
# 合并多个QuerySet
queryset3 = Model.objects.filter(Q(field5='value5') | Q(field6='value6'))
queryset4 = Model.objects.filter(Q(field7='value7') | Q(field8='value8'))
merged_queryset = queryset1.union(queryset2, queryset3, queryset4)
```
在上面的示例中,我们首先使用 `Q()` 对象创建了两个 `QuerySet`,然后使用 `union()` 方法将它们合并成一个新的 `QuerySet` 对象。如果需要合并多个 `QuerySet`,则可以将它们作为参数传递给 `union()` 方法。
阅读全文