You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
103 lines
4.1 KiB
103 lines
4.1 KiB
from django.shortcuts import render
|
|
|
|
# Create your views here.
|
|
from django.http import JsonResponse
|
|
from teacher.models import Teacher
|
|
from django.views.decorators.csrf import csrf_exempt
|
|
from io import BytesIO
|
|
from django.http.multipartparser import MultiPartParser
|
|
from django.http import QueryDict
|
|
from course.models import Course, SC
|
|
from Student.models import Student
|
|
from django.db.models import Q
|
|
from django.db.models import Subquery, OuterRef
|
|
from django.core.exceptions import ObjectDoesNotExist
|
|
|
|
from EduSystemServer.utils import ResponseUtil
|
|
@csrf_exempt
|
|
def teacher_manage(request): # 教师个人信息修改
|
|
if request.method == "POST":
|
|
username = request.POST.get('username')
|
|
password = request.POST.get('password')
|
|
name = request.POST.get('name')
|
|
sex = request.POST.get('sex')
|
|
title = request.POST.get('title')
|
|
education = request.POST.get('education')
|
|
dept = request.POST.get('dept')
|
|
if (username and password and name and sex
|
|
and title and education and dept):
|
|
teacher = Teacher()
|
|
teacher.username = username
|
|
teacher.password = password
|
|
teacher.name = name
|
|
teacher.sex = sex
|
|
teacher.title = title
|
|
teacher.education = education
|
|
teacher.dept = dept
|
|
teacher.save()
|
|
response = ResponseUtil.ok(teacher.to_dict(), "老师信息插入成功")
|
|
return JsonResponse(response)
|
|
else:
|
|
response = ResponseUtil.error("老师信息插入未成功,存在空值,请你仔细检测并上传")
|
|
return JsonResponse(response)
|
|
|
|
elif request.method == "GET":
|
|
name = request.GET.get('name')
|
|
sex = request.GET.get('sex')
|
|
title = request.GET.get('title')
|
|
education = request.GET.get('education')
|
|
dept = request.GET.get('dept')
|
|
# 定义空查询条件
|
|
conditions = Q()
|
|
if name:
|
|
conditions &= Q(name=name)
|
|
if sex:
|
|
conditions &= Q(sex=sex)
|
|
if title:
|
|
conditions &= Q(title=title)
|
|
if education:
|
|
conditions &= Q(education=education)
|
|
if dept:
|
|
conditions &= Q(dept=dept)
|
|
# 添加非空查询条件至基本查询集
|
|
query = Teacher.objects.filter(conditions)
|
|
data = query.values() # 将 QuerySet 对象转换为字典列表
|
|
data = list(data) # 转换为列表以便序列化为 JSON
|
|
print(query)
|
|
response = ResponseUtil.ok(data, "老师信息查询成功")
|
|
return JsonResponse(response)
|
|
|
|
elif request.method == "DELETE":
|
|
parser = MultiPartParser(request.META, BytesIO(request.body), request.upload_handlers, request.encoding)
|
|
posdict = parser.parse()
|
|
print(posdict)
|
|
tid = int(posdict[0]['tid'])
|
|
print(tid)
|
|
try:
|
|
info = Teacher.objects.filter(tid=tid).get().to_dict()
|
|
Teacher.objects.filter(tid=tid).delete()
|
|
response = ResponseUtil.ok(info, "老师信息删除成功")
|
|
return JsonResponse(response)
|
|
except:
|
|
response = ResponseUtil.error("删除失败,未找到老师信息!")
|
|
return JsonResponse(response)
|
|
elif request.method == 'PUT':
|
|
put = MultiPartParser(request.META, request, request.upload_handlers, request.encoding).parse()
|
|
# request.PUT = put[0]
|
|
print(put)
|
|
tid = put[0]['tid']
|
|
name = put[0]['name']
|
|
sex = put[0]['sex']
|
|
title = put[0]['title']
|
|
education = put[0]['education']
|
|
dept = put[0]['dept']
|
|
if name and sex and title and education and dept:
|
|
Teacher.objects.filter(tid=tid).update(name=name,sex=sex,title=title)
|
|
Teacher.objects.filter(tid=tid).update(education=education,dept=dept)
|
|
data = Teacher.objects.filter(tid=tid)[0].to_dict()
|
|
response = ResponseUtil.ok(data, "修改老师信息成功!")
|
|
return JsonResponse(response)
|
|
else:
|
|
response = ResponseUtil.error("修改信息有误!")
|
|
return JsonResponse(response)
|