add district api view

This commit is contained in:
behruz-dev
2025-08-07 15:17:29 +05:00
parent ff493dc03d
commit 2999d4bdab
3 changed files with 24 additions and 9 deletions

View File

@@ -10,10 +10,9 @@ class DistrictListSerializer(serializers.ModelSerializer):
class RegionListSerializer(serializers.ModelSerializer):
districts = DistrictListSerializer(many=True)
class Meta:
model = Region
fields = [
'id', 'name', 'districts'
]
'id', 'name',
]

View File

@@ -4,4 +4,5 @@ from core.apps.shared.views import region as region_views
urlpatterns = [
path('region/list/', region_views.RegionListApiView.as_view()),
path('region/<uuid:id>/districts/', region_views.DistrictListApiView.as_view()),
]

View File

@@ -1,13 +1,28 @@
from rest_framework import generics
from django.shortcuts import get_object_or_404
from core.apps.shared.serializers.region import RegionListSerializer
from core.apps.shared.models import Region
from rest_framework import generics, views
from rest_framework.response import Response
from core.apps.shared.serializers.region import RegionListSerializer, DistrictListSerializer
from core.apps.shared.models import Region, District
from core.apps.accounts.permissions.permissions import HasRolePermission
class RegionListApiView(generics.ListAPIView):
permission_classes = [HasRolePermission]
queryset = Region.objects.prefetch_related('districts')
queryset = Region.objects.all()
serializer_class = RegionListSerializer
required_permissions = ['project', 'project_folder']
required_permissions = ['project', 'project_folder']
pagination_class = None
class DistrictListApiView(views.APIView):
permission_classes = [HasRolePermission]
required_permissions = ['project', 'project_folder']
def get(self, request, id):
region = get_object_or_404(Region, id=id)
districts = District.objects.filter(region=region)
serializer = DistrictListSerializer(districts, many=True)
return Response(serializer.data, status=200)