81 lines
2.5 KiB
Python
81 lines
2.5 KiB
Python
from django.http import JsonResponse
|
|
from rest_framework.views import APIView
|
|
from history.serializers import *
|
|
from rest_framework.response import Response
|
|
from django.db.models import Q
|
|
from django.utils.decorators import method_decorator
|
|
from django.views.decorators.csrf import csrf_exempt
|
|
from django.core.cache import cache
|
|
|
|
|
|
class DepartmentViewSet(APIView):
|
|
# 获取部门信息
|
|
@method_decorator(csrf_exempt)
|
|
def get(self, request):
|
|
response = {
|
|
"code": 20000,
|
|
"msg": "成功",
|
|
}
|
|
queryset = Department.objects.all().filter(did=request.GET.get('did'))
|
|
serializer = DepartmentSerializer(queryset, many=True)
|
|
try:
|
|
response["data"] = serializer.data
|
|
except:
|
|
response['code'] = 40000
|
|
response['msg'] = serializer.error_messages
|
|
if len(response['data']) == 0:
|
|
response['code'] = 40000
|
|
response['msg'] = "未返回数据"
|
|
else:
|
|
response['code'] = 20000
|
|
response['msg'] = "成功"
|
|
return Response(data=response)
|
|
|
|
|
|
class MemberViewSet(APIView):
|
|
# 获取历史成员信息
|
|
@method_decorator(csrf_exempt)
|
|
def get(self, request):
|
|
response = {
|
|
"code": 20000,
|
|
"msg": "成功",
|
|
}
|
|
grade = request.GET.get('grade')
|
|
did = request.GET.get('did')
|
|
try:
|
|
queryset = Members.objects.all().filter(Q(did=did) & Q(grade=grade))
|
|
serializer = MembersSerializer(queryset, many=True)
|
|
except:
|
|
response = {
|
|
"code": 40000,
|
|
"msg": "错误",
|
|
}
|
|
return Response(data=response)
|
|
response["data"] = serializer.data
|
|
return Response(data=response)
|
|
|
|
|
|
class HistoryViewSet(APIView):
|
|
# 获取历史列表
|
|
@method_decorator(csrf_exempt)
|
|
def get(self, request):
|
|
response = {
|
|
"code": 20000,
|
|
"msg": "成功",
|
|
}
|
|
info = []
|
|
for i in range(2002, 2022):
|
|
data = {'grade': i}
|
|
y = []
|
|
for j in range(0, 6):
|
|
try:
|
|
a = History.objects.get(Q(did=j) & Q(grade=i))
|
|
except:
|
|
continue
|
|
x = {'id': a.did, 'department_name': a.department}
|
|
y.append(x)
|
|
data['data'] = y
|
|
info.append(data)
|
|
response["data"] = info
|
|
return Response(data=response)
|