add district api view
This commit is contained in:
@@ -10,10 +10,9 @@ class DistrictListSerializer(serializers.ModelSerializer):
|
|||||||
|
|
||||||
|
|
||||||
class RegionListSerializer(serializers.ModelSerializer):
|
class RegionListSerializer(serializers.ModelSerializer):
|
||||||
districts = DistrictListSerializer(many=True)
|
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Region
|
model = Region
|
||||||
fields = [
|
fields = [
|
||||||
'id', 'name', 'districts'
|
'id', 'name',
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|||||||
@@ -4,4 +4,5 @@ from core.apps.shared.views import region as region_views
|
|||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
path('region/list/', region_views.RegionListApiView.as_view()),
|
path('region/list/', region_views.RegionListApiView.as_view()),
|
||||||
|
path('region/<uuid:id>/districts/', region_views.DistrictListApiView.as_view()),
|
||||||
]
|
]
|
||||||
@@ -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 rest_framework import generics, views
|
||||||
from core.apps.shared.models import Region
|
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
|
from core.apps.accounts.permissions.permissions import HasRolePermission
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class RegionListApiView(generics.ListAPIView):
|
class RegionListApiView(generics.ListAPIView):
|
||||||
permission_classes = [HasRolePermission]
|
permission_classes = [HasRolePermission]
|
||||||
queryset = Region.objects.prefetch_related('districts')
|
queryset = Region.objects.all()
|
||||||
serializer_class = RegionListSerializer
|
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)
|
||||||
Reference in New Issue
Block a user