27 lines
815 B
Python
27 lines
815 B
Python
from django.db.models import Q
|
|
from rest_framework.generics import ListAPIView, RetrieveAPIView
|
|
|
|
from countries.models import Country
|
|
from countries.serializers import CountrySerializer
|
|
|
|
|
|
class CountryListView(ListAPIView):
|
|
queryset = Country.objects.all().order_by("alpha2")
|
|
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()
|
|
serializer_class = CountrySerializer
|
|
lookup_field = "alpha2"
|