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.
55 lines
2.0 KiB
55 lines
2.0 KiB
2 years ago
|
from rest_framework.views import APIView
|
||
|
from rest_framework.response import Response
|
||
|
from rest_framework import status
|
||
|
|
||
|
from apps.goods.models import *
|
||
|
from apps.goods.serializers import *
|
||
|
|
||
|
|
||
|
class GoodsAPIView(APIView):
|
||
|
def get(self, request, *args, **kwargs):
|
||
|
query_data = Goods.objects.all()[:10]
|
||
|
goods_json = GoodsSerializers(query_data, many=True)
|
||
|
print(goods_json.data)
|
||
|
print(goods_json)
|
||
|
r = Response(data=goods_json.data, status=status.HTTP_200_OK)
|
||
|
print(r.data)
|
||
|
print(r.status_code)
|
||
|
print(r)
|
||
|
return Response(data=goods_json.data, status=status.HTTP_200_OK)
|
||
|
|
||
|
def post(self, request, *args, **kwargs):
|
||
|
data = request.data
|
||
|
print(request)
|
||
|
print(data)
|
||
|
goods_serializer = GoodsSerializers(data=data, many=False)
|
||
|
print(goods_serializer)
|
||
|
if goods_serializer.is_valid():
|
||
|
d = goods_serializer.validated_data
|
||
|
print('validated_data', d)
|
||
|
Goods.objects.create(**d)
|
||
|
return Response(goods_serializer.data, status=status.HTTP_200_OK)
|
||
|
else:
|
||
|
return Response(goods_serializer.errors, status=status.HTTP_400_BAD_REQUEST)
|
||
|
|
||
|
def put(self, request, *args, **kwargs):
|
||
|
data = request.data
|
||
|
params = kwargs
|
||
|
print(data)
|
||
|
print(params)
|
||
|
_id = params.get('id')
|
||
|
serializer_goods = GoodsSerializers(data=data, many=False)
|
||
|
if serializer_goods.is_valid():
|
||
|
if goods_obj := Goods.objects.filter(id=_id):
|
||
|
goods_obj.update(**serializer_goods.validated_data)
|
||
|
return Response(serializer_goods.data, status=status.HTTP_200_OK)
|
||
|
return Response(serializer_goods.errors, status=status.HTTP_400_BAD_REQUEST)
|
||
|
|
||
|
def delete(self, request, *args, **kwargs):
|
||
|
del_id = request.data.get('id')
|
||
|
if del_id:
|
||
|
goods_obj = Goods.objects.filter(id=del_id)
|
||
|
goods_obj.delete()
|
||
|
return Response(status=status.HTTP_200_OK)
|
||
|
return Response(status=status.HTTP_400_BAD_REQUEST)
|