from rest_framework import generics from rest_framework.permissions import IsAuthenticated from core.apps.shared.serializers.region.district import DistrictSerializer, VillageSerializer, RegionSerializer from core.apps.shared.models import RegionModel, VillageModel, DistrictModel class DistrictListCreateView(generics.ListCreateAPIView): permission_classes = [IsAuthenticated] serializer_class = DistrictSerializer queryset = DistrictModel.objects.all() def get_queryset(self): region = self.request.query_params.get('region') name = self.request.query_params.get('name') if name: return self.queryset.filter(name__icontains=name) if region: return self.queryset.filter(region=region) return super().get_queryset() class VillageListCreateView(generics.ListCreateAPIView): permission_classes = [IsAuthenticated] serializer_class = VillageSerializer queryset = VillageModel.objects.all() def get_queryset(self): district = self.request.query_params.get('district') name = self.request.query_params.get('name') if district: return self.queryset.filter(district=district) if name: return self.queryset.filter(name__icontains=name) return super().get_queryset() class RegionListCreateView(generics.ListCreateAPIView): permission_classes = [IsAuthenticated] serializer_class = RegionSerializer queryset = RegionModel.objects.all()