from django.shortcuts import render
from rest_framework.views import APIView
from rest_framework.response import Response
from .models import *
from .sers import CateSer
# 1. 分类接口
class CateView(APIView):
# 1.1 新增分类
def post(self, request):
# 1.1.1 获取分类名称
name = request.data.get('name')
# 天外飞仙
print(name, '-----post')
# 1.1.2 判断分类名称是否存在
cate = Cate.objects.filter(name=name).first()
if cate:
return Response({'msg': '分类已存在', 'code': 200})
# 创建序列化对象
data = {'name': name}
cate_ser = CateSer(data=data)
# 1.1.3 验证分类名称字段是否合格
if cate_ser.is_valid():
# 1.1.4 存入数据库
cate_ser.save() # 存入数据库/反序列化
# 1.1.5 响应
return Response({'msg': '新增成功', 'code': 200})
else:
return Response({'msg': '数据不符合要求', 'code': 400})
# 1.2 查询
def get(self,request):
# 1.2.1 查询所有分类
cates = Cate.objects.all()
# 1.2.2 序列化---把objectd对象转为json
cates_ser = CateSer(cates,many=True)
print(cates_ser)
#1.2.3返回数据
return Response(cates_ser.data)
# 1.3 删除
def delete(self,request):
# 1.获取删除的cate_id
cate_id = request.data.get('cate_id')
print(cate_id,'-----delete')
# 2.根据cate_id,查到cate对象
cate = Cate.objects.filter(id=cate_id)
# 3.判断cate对象是否存在,存在则删除,不存在则提示不存在
if cate:
cate.delete()
return Response({'msg': '删除成功', 'code': 200})
else:
return Response({'msg': '此分类不存在', 'code': 400})
# 1.4 修改
def put(self,request):
# 1.4.1获取要修改的分类id和新的分类名称
cate_id= request.data.get('cate_id')
name = request.data.get('name')
# 1.4.2查询分类对象
cate = Cate.objects.filter(id=cate_id).first()
cate_ser = CateSer(instance=cate, data={'name': name})
# 1.4.3判断分类是否存在
if cate:
if cate_ser.is_valid():
cate_ser.save()
return Response({'msg': '修改成功', 'code': 200})
else:
return Response({'msg': '此分类不存在', 'code': 400})
# 1.4.4返回响应