Как вернуть список выбранных пользователем значений с помощью ArrayAgg в Django?

Я пытаюсь написать запрос, в котором я получаю список всех совпадающих фильтров для каждого продукта.

Мне удалось написать аннотацию, которая создает список и помещает в него все подходящие фильтры:

def filter_data(request):
    client_type = request.GET.getlist('client_type[]')
    product_list = product_list.annotate(client_type_product_count=Count('client_type', filter=Q(client_type__title__in=client_type)), client_type_title=ArrayAgg('client_type__title', distinct=True)).exclude(client_type_product_count__exact=0)

Единственное, что я хочу изменить, это то, что в этом массиве я буду видеть только совпадающие фильтры, которые выбрал пользователь. Сейчас я вижу их все (независимо от того, что выбрал пользователь, я всегда вижу все совпадающие фильтры для каждого продукта.

).

Например, у меня есть продукт, который соответствует фильтрам client_type1, client_type2 и client_type3. Сейчас он показывает мне все 3 соответствия в списке. Я хочу, чтобы, если пользователь выберет client_type1, список включал только client_type1 (не все). Если пользователь выберет клиент_типа1 и клиент_типа2, то он покажет мне только эти 2 совпадающих фильтра и т.д.

Как я могу сделать что-то подобное?

from django.contrib.auth.models import User пользователи = User.objects.all()

return Response( users.values_list('username', flat=True) )

ИЛИ

return Response( '\n'.join([user.username for user in users]) )

Вернуться на верх