Как сделать 2 списка кверисетов, но с разными фильтрами в одном представлении в Django

Я искал ответ на этот вопрос везде. Как сделать 2 списка кверисетов, но с разными фильтрами в одном представлении? Должен ли я сделать класс и отдельные функции внутри для каждого списка или одну функцию и сделать кверисеты 2 раза?

Если вы хотите добавить два одинаковых модельных набора запросов вместе, должно сработать следующее:

queryset_one = mymodel.objects.filter(id__range=[0,99])
queryset_two = mymodel.objects.filter(name__in=[john,jane])

full_queryset = queryset_one | queryset_two

Оператор pipe используется для сложения кверисетов вместе.

Если вам нужно передать два разных набора запросов в представление:

def index(request):
    queryset_one = mymodel.objects.filter(id__range=[0,99])
    queryset_two = mymodel.objects.filter(name__in=[john,jane])
    context{
        "queryset_one":queryset_one,
        "queryset_two":queryset_two
    }
    return render(request,'mypage.html',context)

Если два фильтра для одной модели

from django.db.models import Q

Model.objects.filter(Q(x=10) | Q(active=False))

Если для двух модл

Q1 = model.object.filter(x=10)
Q2 = model_2.object.filter(active=False)
Q2_Q1 = Q1.union(Q2)
Вернуться на верх