safesite/safesite/viewsdrf.py

78 lines
4.1 KiB
Python

from .models import *
from .serializers import *
from rest_framework.views import APIView
from rest_framework.generics import ListAPIView
from rest_framework.viewsets import ModelViewSet
from rest_framework.response import Response
from rest_framework import generics
from rest_framework import status
class EquipmentCheckFormAPIView(APIView):
def get(self,request):
userid = request.session['userid']
usecomp = User.objects.get(userid=userid).usecomp
queryset = EquipmentCheckForm.objects.filter(deletemark=1,usecomp=usecomp).order_by('-pk')
total = queryset.count()
serializer = EquipmentCheckFormSerializers2(instance=queryset,many=True)
ret = {'total':total,'rows':serializer.data}
return Response(ret)
def post(self,request):
userid = request.session['userid']
user = User.objects.get(userid=userid)
usecomp = user.usecomp
id = request.data.get('id',0)
instance = EquipmentCheckForm.objects.filter(id=id)
reqdata = request.data
serializer = EquipmentCheckFormSerializers(data=reqdata)
if serializer.is_valid():
if instance:
serializer.update(instance,reqdata)
for i in request.data['items']:
if 'id' in i and i['id']:
if i['type'] and i['type']!='null':
EquipmentCheckItem.objects.filter(id=i['id']).update(name=i['name'], content=i['content'], type=Dickey.objects.get(pk=i['type']))
else:
EquipmentCheckItem.objects.filter(id=i['id']).update(name=i['name'], content=i['content'])
else:
if i['type'] and i['type']!='null':
iteminstance = EquipmentCheckItem.objects.create(name=i['name'], content=i['content'], type=Dickey.objects.get(pk=i['type']))
else:
iteminstance = EquipmentCheckItem.objects.create(name=i['name'], content=i['content'])
EFormItems.objects.create(equipment_check_form=instance.first(),equipment_check_item=iteminstance)
res = {'code':200,'msg':'success','data':{}}
else:
reqdata['usecomp'] = usecomp
reqdata['createby'] = user
if EquipmentCheckForm.objects.filter(name=reqdata['name'],usecomp=usecomp, deletemark=1).exists():
res = {'code':400,'msg':'同名表已存在','data':{}}
else:
forminstance = serializer.create(reqdata)
for i in request.data['items']:
if 'id' in i and i['id']:
if i['type'] and i['type']!='null':
EquipmentCheckItem.objects.filter(id=i['id']).update(name=i['name'], content=i['content'], type=Dickey.objects.get(pk=i['type']))
else:
EquipmentCheckItem.objects.filter(id=i['id']).update(name=i['name'], content=i['content'])
else:
if i['type'] and i['type']!='null':
iteminstance = EquipmentCheckItem.objects.create(name=i['name'], content=i['content'], type=Dickey.objects.get(pk=i['type']))
else:
iteminstance = EquipmentCheckItem.objects.create(name=i['name'], content=i['content'])
EFormItems.objects.create(equipment_check_form=instance.first(),equipment_check_item=iteminstance)
res = {'code':200,'msg':'success','data':{}}
return Response(res)
return Response({'code':404,'msg':'验证错误','data':serializer.errors}, status=404)
class EquipmentCheckFormDetailView(generics.RetrieveUpdateDestroyAPIView):
queryset = EquipmentCheckForm.objects.all()
serializer_class = EquipmentCheckFormSerializers
def destroy(self, request, *args, **kwargs):
obj = EquipmentCheckForm.objects.get(id=kwargs['pk'])
obj.deletemark=0
obj.save()
return Response(status=status.HTTP_204_NO_CONTENT)