views视图

views视图,第1张

from django.shortcuts import render
from rest_framework.generics import GenericAPIView
from rest_framework.response import Response
from rest_framework.viewsets import ModelViewSet

from .models import Department,Duty,Staff
from .serializers import DepartmentSer,StaffSer,DutySer
from rest_framework.views import APIView


#部门查询所有和添加
class DepartmentAPIView(APIView):
    def get(self,request):
        department_list=Department.objects.all()
        dep_ser=DepartmentSer(department_list,many=True)
        return Response(dep_ser.data)

    def post(self, request):
        name = request.data.get("name")
        if Department.objects.filter(name=name):
            return Response({"code": 400, "msg": "有该部门不能添加"})
        else:
            ser = DepartmentSer(data=request.data)#创建一个实例化对象
            ser.is_valid()
            ser.save()
            return Response({"code": 200, "msg": "添加成功"})



#部门查询单个,删除,修改
class DepupdateAPIView(APIView):
    def get(self,request,pk):
        dep= Department.objects.get(id=pk)
        ser=DepartmentSer(dep)
        return Response({"code":200,"msg":"获取成功","data":ser.data})

    def put(self,request,pk):
        dep=Department.objects.filter(id=pk).first()
        data=request.data
        ser=DepartmentSer(data=data,instance=dep)
        if ser.is_valid():
            ser.save()
            return Response({"code": 200, "msg": "修改成功"})
        else:
            return Response({"code":400,"msg":"验证失败"})


    def delete(self,request,pk):
        dep=Department.objects.filter(id=pk).delete()
        return Response({"code":200,"msg":"删除成功"})

class DepartmentGen(GenericAPIView):
    queryset= Department.objects.all()
    serializer_class = DepartmentSer
    def get(self,request):
        dep=self.get_queryset()
        dep_ser=self.get_serializer(dep,many=True)
        return Response({"code":200,"msg":"获取数据成功",'data':dep_ser.data})
    def post(self,request):
        name=request.data.get("name")
        if Department.objects.filter(name=name):
            return Response({"code":400,'msg':"有改部门不能进行添加"})
        else:
            data=request.data
            ser=self.get_serializer(data=data)
            ser.is_valid()
            ser.save()
            return Response({"code":200,"msg":"添加部门成功"})

class DepartmentGenDel(GenericAPIView):
    queryset = Department.objects.all()
    serializer_class = DepartmentSer
    def get(self,request,pk):
        dep=Department.objects.filter(id=pk).first()
        print("查询出的数据",dep)
        if dep:
            ser=self.get_serializer(dep,many= True)
            print("序列化后的对象:",ser)
            return Response({"code":200,"msg":"查询成功","data":ser.data})
        else:
            return Response({"code":400,"msg":"没有该条数据"})


#职责                     获取全部数据和添加
class DutyAPIView(APIView):

    def get(self,request):
        duty=Duty.objects.all()
        ser=DutySer(duty,many=True)
        print("1111111111111111",ser)
        return Response({"code":200,"msg":"获取自责所有数据","data":ser.data})

    def post(self,request):
        name=request.data.get("name")
        if Duty.objects.filter(name=name):
            return Response({"code":400,"msg":"有该职责不能进行添加"})
        else:
            ser=DutySer(data=request.data)
            ser.is_valid()
            ser.save()
            return Response({"code":200,"msg":"添加成功"})





#员工
class StaffAPIView(ModelViewSet):
    queryset = Staff.objects.all()
    serializer_class = StaffSer
    lookup_field = "pk"
    lookup_url_kwarg = "pk"

    def create(self, request, *args, **kwargs):
        print("打印数据",request.data)
        name=request.data.get("name")
        sex=request.data.get("sex")
        phone=request.data.get("phone")
        email=request.data.get("email")
        department=request.data.get("department")
        duty=request.data.get("duty")
        if Staff.objects.filter(name=name,sex=sex,phone=phone,email=email,department_id=department,duty_id=duty):
            return Response({"code":400,"msg":"改工作人员已存在不可以进行添加"})
        else:
            staff=Staff.objects.create(name=name,phone=phone,email=email,department_id=department,duty_id=duty)
            return Response({"code":200,"msg":"添加成功","data":staff.data})





欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/728034.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-26
下一篇 2022-04-26

发表评论

登录后才能评论

评论列表(0条)

保存