Как вернуть список выбранных пользователем значений с помощью 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]) )