update
This commit is contained in:
61
rog/views.py
61
rog/views.py
@ -1,8 +1,10 @@
|
||||
from django.core.serializers import serialize
|
||||
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, JPN_sub_perSerializer
|
||||
from .serializers import LocationSerializer, Location_lineSerializer, Location_polygonSerializer, JPN_main_perfSerializer, JPN_perfSerializer, JPN_sub_perSerializer, LocationCatSerializer, CreateUserSerializer, UserSerializer, LoginUserSerializer
|
||||
from knox.models import AuthToken
|
||||
|
||||
from rest_framework import viewsets, permissions, generics
|
||||
from rest_framework.decorators import action
|
||||
from rest_framework.response import Response
|
||||
from rest_framework.parsers import JSONParser, MultiPartParser
|
||||
@ -39,16 +41,26 @@ class Jpn_PerfViewSet(viewsets.ModelViewSet):
|
||||
|
||||
def LocationsInPerf(request):
|
||||
perfecture = request.GET.get('perf')
|
||||
cat = request.GET.get('cat')
|
||||
perf_geom = JpnAdminMainPerf.objects.get(id=perfecture)
|
||||
locs = Location.objects.filter(geom__within=perf_geom.geom)
|
||||
|
||||
if(cat):
|
||||
locs = Location.objects.filter(geom__within=perf_geom.geom, category=cat)
|
||||
else:
|
||||
locs = Location.objects.filter(geom__within=perf_geom.geom)
|
||||
|
||||
serializer = LocationSerializer(locs, many=True)
|
||||
return JsonResponse(serializer.data, safe=False)
|
||||
#return JsonResponse({})
|
||||
|
||||
def LocationsInSubPerf(request):
|
||||
subperfecture = request.GET.get('subperf')
|
||||
cat = request.GET.get('cat')
|
||||
perf_geom = JpnSubPerf.objects.get(id=subperfecture)
|
||||
locs = Location.objects.filter(geom__within=perf_geom.geom)
|
||||
|
||||
if(cat):
|
||||
locs = Location.objects.filter(geom__within=perf_geom.geom, category=cat)
|
||||
else:
|
||||
locs = Location.objects.filter(geom__within=perf_geom.geom)
|
||||
serializer = LocationSerializer(locs, many=True)
|
||||
return JsonResponse(serializer.data, safe=False)
|
||||
|
||||
@ -65,7 +77,7 @@ 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
|
||||
#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)
|
||||
@ -84,4 +96,41 @@ def ExtentForSubPerf(request):
|
||||
ext = sub_perf.geom.extent
|
||||
# iata = serializers.serialize("json",ext)
|
||||
return JsonResponse(ext, safe=False)
|
||||
|
||||
|
||||
|
||||
def CatView(request):
|
||||
c = Location.objects.values('category').distinct()
|
||||
serializer = LocationCatSerializer(c, many=True)
|
||||
return JsonResponse(serializer.data, safe=False)
|
||||
|
||||
|
||||
class RegistrationAPI(generics.GenericAPIView):
|
||||
serializer_class = CreateUserSerializer
|
||||
|
||||
def post(self, request, *args, **kwargs):
|
||||
serializer = self.get_serializer(data=request.data)
|
||||
serializer.is_valid(raise_exception=True)
|
||||
user = serializer.save()
|
||||
return Response({
|
||||
"user": UserSerializer(user, context=self.get_serializer_context()).data,
|
||||
"token": AuthToken.objects.create(user)[1]
|
||||
})
|
||||
|
||||
class LoginAPI(generics.GenericAPIView):
|
||||
serializer_class = LoginUserSerializer
|
||||
|
||||
def post(self, request, *args, **kwargs):
|
||||
serializer = self.get_serializer(data=request.data)
|
||||
serializer.is_valid(raise_exception=True)
|
||||
user = serializer.validated_data
|
||||
return Response({
|
||||
"user": UserSerializer(user, context=self.get_serializer_context()).data,
|
||||
"token": AuthToken.objects.create(user)[1]
|
||||
})
|
||||
|
||||
class UserAPI(generics.RetrieveAPIView):
|
||||
permission_classes = [permissions.IsAuthenticated, ]
|
||||
serializer_class = UserSerializer
|
||||
|
||||
def get_object(self):
|
||||
return self.request.user
|
||||
Reference in New Issue
Block a user