APIView列子

发布时间 2023-07-27 17:46:04作者: MyKai

?获取不到get的参数

通过:requests.query_params.get("id")获取

from django.shortcuts import render
from rest_framework.views import APIView
from rest_framework import  serializers

from common import utils
from .models import ColorModel
# Create your views here.

class ColorSer(serializers.ModelSerializer):

    class Meta:
        model=ColorModel
        fields="__all__"
# 获取所有列表
class ColorListView(APIView):
    def post(self,request):
        color_list=ColorModel.objects.all()
        sers=ColorSer(instance=color_list,many=True)
        return utils.HttPResponceSuccess(sers.data)

class ColorView(APIView):
	#新增接口
    def post(self,requests):
        ser=ColorSer(data=requests.data)
        if ser.is_valid():
            ColorModel.objects.create(**ser.validated_data)
            return utils.HttPResponceSuccess("新增成功")
        else:
            return utils.HttPErrorValue(ser.errors)
    # 删除
    def delete(self,requests):
        try:
            sersid=requests.data["id"]
            ColorModel.objects.filter(id=sersid).delete()
            return utils.HttPResponceSuccess("删除成功")
        except KeyError as e:
            return utils.HttPErrorValue(str(e))
    # 查看单个
    def get(self,requests):
        sersid = requests.data["id"]
        sers=ColorSer(instance=ColorModel.objects.get(id=sersid),many=False)
        return utils.HttPResponceSuccess(sers.data)
    # 更新
    def put(self,requests):
        sers=ColorSer(data=requests.data)
        if sers.is_valid():
            ColorModel.objects.filter(id=requests.data["id"]).update(**sers.validated_data)
            return  utils.HttPResponceSuccess("修改成功")
        else:
            return utils.HttPErrorValue(sers.errors)