Added ability to filter by more than one regions

This commit is contained in:
ITQ
2024-02-29 23:09:11 +03:00
parent a8c63e223a
commit 91ac2f8429
+11 -1
View File
@@ -1,3 +1,4 @@
from django.db.models import Q
from rest_framework.generics import ListAPIView, RetrieveAPIView from rest_framework.generics import ListAPIView, RetrieveAPIView
from countries.models import Country from countries.models import Country
@@ -6,9 +7,18 @@ from countries.serializers import CountrySerializer
class CountryListView(ListAPIView): class CountryListView(ListAPIView):
queryset = Country.objects.all().order_by("alpha2") queryset = Country.objects.all().order_by("alpha2")
filterset_fields = ["region"]
serializer_class = CountrySerializer 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): class CountryByAlpha2View(RetrieveAPIView):
queryset = Country.objects.all() queryset = Country.objects.all()