add district api view
This commit is contained in:
@@ -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',
|
||||
]
|
||||
|
||||
|
||||
@@ -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()),
|
||||
]
|
||||
@@ -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)
|
||||
Reference in New Issue
Block a user