From 91ac2f8429f23ef3b9e2d35167d5075a65dafd2b Mon Sep 17 00:00:00 2001 From: ITQ Date: Thu, 29 Feb 2024 23:09:11 +0300 Subject: [PATCH] Added ability to filter by more than one regions --- solution/pulse/countries/views.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/solution/pulse/countries/views.py b/solution/pulse/countries/views.py index b9e4a84..32b8c1a 100644 --- a/solution/pulse/countries/views.py +++ b/solution/pulse/countries/views.py @@ -1,3 +1,4 @@ +from django.db.models import Q from rest_framework.generics import ListAPIView, RetrieveAPIView from countries.models import Country @@ -6,9 +7,18 @@ from countries.serializers import CountrySerializer class CountryListView(ListAPIView): queryset = Country.objects.all().order_by("alpha2") - filterset_fields = ["region"] serializer_class = CountrySerializer + def filter_queryset(self, queryset): + regions = self.request.query_params.get("region") + if regions: + regions_list = regions.split(",") + query = Q() + for region in regions_list: + query |= Q(region=region) + queryset = queryset.filter(query) + return queryset + class CountryByAlpha2View(RetrieveAPIView): queryset = Country.objects.all()