update
This commit is contained in:
@ -2,7 +2,7 @@ from django.contrib import admin
|
||||
from leaflet.admin import LeafletGeoAdmin
|
||||
from leaflet.admin import LeafletGeoAdminMixin
|
||||
from leaflet_admin_list.admin import LeafletAdminListMixin
|
||||
from .models import RogUser, Location, SystemSettings, JoinedEvent, Favorite, TravelList, TravelPoint, ShapeLayers, Event, Location_line, Location_polygon, JpnAdminMainPerf, JpnAdminPerf
|
||||
from .models import RogUser, Location, SystemSettings, JoinedEvent, Favorite, TravelList, TravelPoint, ShapeLayers, Event, Location_line, Location_polygon, JpnAdminMainPerf, JpnAdminPerf, JpnSubPerf
|
||||
|
||||
|
||||
class RogAdmin(LeafletAdminListMixin, LeafletGeoAdminMixin, admin.ModelAdmin):
|
||||
@ -28,5 +28,6 @@ admin.site.register(Event, admin.ModelAdmin)
|
||||
admin.site.register(Location_line, LeafletGeoAdmin)
|
||||
admin.site.register(Location_polygon, LeafletGeoAdmin)
|
||||
admin.site.register(JpnAdminMainPerf, LeafletGeoAdmin)
|
||||
admin.site.register(JpnAdminPerf, LeafletGeoAdmin)
|
||||
#admin.site.register(JpnAdminPerf, LeafletGeoAdmin)
|
||||
admin.site.register(JpnSubPerf, LeafletGeoAdmin)
|
||||
admin.site.register(ShapeLayers, admin.ModelAdmin)
|
||||
@ -65,6 +65,23 @@ class JpnAdminPerf(models.Model):
|
||||
db_table = 'jpn_admin_perf'
|
||||
|
||||
|
||||
class JpnSubPerf(models.Model):
|
||||
geom = models.MultiPolygonField(blank=True, null=True)
|
||||
adm0_en = models.CharField(max_length=254, blank=True, null=True)
|
||||
adm0_ja = models.CharField(max_length=254, blank=True, null=True)
|
||||
adm0_pcode = models.CharField(max_length=254, blank=True, null=True)
|
||||
adm1_en = models.CharField(max_length=254, blank=True, null=True)
|
||||
adm1_ja = models.CharField(max_length=254, blank=True, null=True)
|
||||
adm1_pcode = models.CharField(max_length=254, blank=True, null=True)
|
||||
adm2_ja = models.CharField(max_length=254, blank=True, null=True)
|
||||
adm2_en = models.CharField(max_length=254, blank=True, null=True)
|
||||
adm2_pcode = models.CharField(max_length=254, blank=True, null=True)
|
||||
|
||||
class Meta:
|
||||
managed = False
|
||||
db_table = 'jpn_sub_perf'
|
||||
|
||||
|
||||
class RogUser(models.Model):
|
||||
user=models.OneToOneField(User, on_delete=models.CASCADE)
|
||||
email=models.EmailField(_('Email'))
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
from rest_framework import serializers
|
||||
from rest_framework_gis.serializers import GeoFeatureModelSerializer
|
||||
from sqlalchemy.sql.functions import mode
|
||||
from .models import Location, Location_line, Location_polygon, JpnAdminMainPerf, JpnAdminPerf
|
||||
from .models import Location, Location_line, Location_polygon, JpnAdminMainPerf, JpnAdminPerf, JpnSubPerf
|
||||
from drf_extra_fields.fields import Base64ImageField
|
||||
|
||||
|
||||
@ -30,6 +30,12 @@ class JPN_main_perfSerializer(serializers.ModelSerializer):
|
||||
model=JpnAdminMainPerf
|
||||
fields=['id', 'adm0_en', 'adm0_ja', 'adm0_pcode', 'adm1_en', 'adm1_ja', 'adm1_pcode']
|
||||
|
||||
class JPN_sub_perSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model=JpnSubPerf
|
||||
fields=['id', 'adm0_en', 'adm0_ja', 'adm0_pcode', 'adm1_en', 'adm1_ja', 'adm1_pcode', 'adm2_ja', 'adm2_en', 'adm2_pcode']
|
||||
|
||||
|
||||
class JPN_perfSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model=JpnAdminPerf
|
||||
|
||||
@ -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, LocationsInPerf, SubInPerf, ExtentForSubPerf
|
||||
from .views import LocationViewSet, Location_lineViewSet, Location_polygonViewSet, Jpn_Main_PerfViewSet, Jpn_PerfViewSet, LocationsInPerf, SubInPerf, ExtentForSubPerf, SubPerfInMainPerf, ExtentForMainPerf
|
||||
from django.urls import path, include
|
||||
|
||||
|
||||
@ -17,6 +17,7 @@ urlpatterns = router.urls
|
||||
|
||||
urlpatterns += [
|
||||
path('inperf/', LocationsInPerf, name="location_perf"),
|
||||
path('insubperf/', SubInPerf, name="sub_perf"),
|
||||
path('subperfinmain/', SubPerfInMainPerf, name="sub_perf"),
|
||||
path('perfext/', ExtentForSubPerf, name="sub_perf_ext"),
|
||||
path('mainperfext/', ExtentForMainPerf, name="main_perf_ext"),
|
||||
]
|
||||
23
rog/views.py
23
rog/views.py
@ -1,7 +1,7 @@
|
||||
from django.core.serializers import serialize
|
||||
from .models import Location, Location_line, Location_polygon, JpnAdminMainPerf, JpnAdminPerf
|
||||
from .models import Location, Location_line, Location_polygon, JpnAdminMainPerf, JpnAdminPerf, JpnSubPerf
|
||||
from rest_framework import viewsets
|
||||
from .serializers import LocationSerializer, Location_lineSerializer, Location_polygonSerializer, JPN_main_perfSerializer, JPN_perfSerializer
|
||||
from .serializers import LocationSerializer, Location_lineSerializer, Location_polygonSerializer, JPN_main_perfSerializer, JPN_perfSerializer, JPN_sub_perSerializer
|
||||
|
||||
from rest_framework.decorators import action
|
||||
from rest_framework.response import Response
|
||||
@ -54,9 +54,26 @@ def SubInPerf(request):
|
||||
return JsonResponse(serializer.data, safe=False)
|
||||
|
||||
|
||||
def SubPerfInMainPerf(request):
|
||||
prefecture = request.GET.get('perf')
|
||||
perf_geom = JpnAdminMainPerf.objects.get(id=prefecture)
|
||||
sub = JpnSubPerf.objects.filter(geom__within=perf_geom.geom)
|
||||
serializer = JPN_sub_perSerializer
|
||||
#sub = JpnAdminPerf.objects.filter(geom__within=perf_geom.geom)
|
||||
serializer = JPN_sub_perSerializer(sub, many=True)
|
||||
return JsonResponse(serializer.data, safe=False)
|
||||
|
||||
|
||||
def ExtentForMainPerf(request):
|
||||
perf_id = request.GET.get('perf')
|
||||
perf = JpnAdminMainPerf.objects.get(id=perf_id)
|
||||
ext = perf.geom.extent
|
||||
# iata = serializers.serialize("json",ext)
|
||||
return JsonResponse(ext, safe=False)
|
||||
|
||||
def ExtentForSubPerf(request):
|
||||
sub_perf_id = request.GET.get('sub_perf')
|
||||
sub_perf = JpnAdminPerf.objects.get(id=sub_perf_id)
|
||||
sub_perf = JpnSubPerf.objects.get(id=sub_perf_id)
|
||||
ext = sub_perf.geom.extent
|
||||
# iata = serializers.serialize("json",ext)
|
||||
return JsonResponse(ext, safe=False)
|
||||
|
||||
Reference in New Issue
Block a user