diff --git a/rog/serializers.py b/rog/serializers.py index ed72494..bb069ab 100644 --- a/rog/serializers.py +++ b/rog/serializers.py @@ -28,9 +28,9 @@ class Location_polygonSerializer(GeoFeatureModelSerializer): class JPN_main_perfSerializer(serializers.ModelSerializer): class Meta: model=JpnAdminMainPerf - fields=['adm0_en', 'adm0_ja', 'adm0_pcode', 'adm1_en', 'adm1_ja', 'adm1_pcode'] + fields=['id', 'adm0_en', 'adm0_ja', 'adm0_pcode', 'adm1_en', 'adm1_ja', 'adm1_pcode'] class JPN_perfSerializer(serializers.ModelSerializer): class Meta: model=JpnAdminPerf - fields=['et_id', 'et_right', 'et_left', 'adm2_l', 'adm1_l', 'adm0_l', 'adm0_r', 'adm1_r', 'adm2_r', 'admlevel'] + fields=['id','et_id', 'et_right', 'et_left', 'adm2_l', 'adm1_l', 'adm0_l', 'adm0_r', 'adm1_r', 'adm2_r', 'admlevel'] diff --git a/rog/urls.py b/rog/urls.py index cbe7021..c37795d 100644 --- a/rog/urls.py +++ b/rog/urls.py @@ -1,6 +1,6 @@ from rest_framework import urlpatterns from rest_framework.routers import DefaultRouter -from .views import LocationViewSet, Location_lineViewSet, Location_polygonViewSet, Jpn_Main_PerfViewSet, Jpn_PerfViewSet +from .views import LocationViewSet, Location_lineViewSet, Location_polygonViewSet, Jpn_Main_PerfViewSet, Jpn_PerfViewSet, LocationsInPerf, SubInPerf from django.urls import path, include @@ -14,3 +14,8 @@ router.register(prefix='perf', viewset=Jpn_PerfViewSet, basename='perf') urlpatterns = router.urls + +urlpatterns += [ + path('inperf/', LocationsInPerf, name="location_perf"), + path('insubperf/', SubInPerf, name="sub_perf"), +] \ No newline at end of file diff --git a/rog/views.py b/rog/views.py index 26312b8..c9ec973 100644 --- a/rog/views.py +++ b/rog/views.py @@ -8,6 +8,7 @@ from rest_framework.response import Response from rest_framework.parsers import JSONParser, MultiPartParser from .models import Location from .serializers import LocationSerializer +from django.http import JsonResponse @@ -37,4 +38,18 @@ class Jpn_PerfViewSet(viewsets.ModelViewSet): serializer_class=JPN_perfSerializer - +def LocationsInPerf(request): + perfecture = request.GET.get('perf') + perf_geom = JpnAdminMainPerf.objects.get(id=perfecture) + locs = Location.objects.filter(geom__within=perf_geom.geom) + serializer = LocationSerializer(locs, many=True) + return JsonResponse(serializer.data, safe=False) + #return JsonResponse({}) + +def SubInPerf(request): + prefecture = request.GET.get('perf') + perf_geom = JpnAdminMainPerf.objects.get(id=prefecture) + sub = JpnAdminPerf.objects.filter(geom__within=perf_geom.geom) + serializer = JPN_perfSerializer(sub, many=True) + return JsonResponse(serializer.data, safe=False) + \ No newline at end of file