djnago中有izhanichen功能吗

问题描述 投票:0回答:1

#serializers.py

从rest_framework导入序列化器

#在此处创建序列化器。

从 inventoryapp.models 导入 Inventory

类 InventorySerializer(serializers.ModelSerializer): 类元: 型号=库存 字段=“全部

text
1个回答
0
投票

from django.urls 导入路径 从 django.contrib 导入 admin 从 .views 导入(InventoryItemListAPIView, InventoryItemCategoryListAPIView, 库存项目排序API视图, 库存项目编辑API视图, )

urlpatterns = [ 路径('admin/', admin.site.urls), 路径('库存/物品/', InventoryItemListAPIView.as_view(), name='inventory_items_list'), 路径('库存/项目/查询/str:类别/', InventoryItemCategoryListAPIView.as_view(), name='inventory_items_by_category'), 路径('items/query/str:category/', InventoryItemCategoryListAPIView.as_view(), name='inventory_items_by_category'), 路径('items/sort/', InventoryItemSortAPIView.as_view(), name='inventory_items_sort'), 路径('库存/项目/int:item_id/', InventoryItemEditAPIView.as_view(), name='inventory_items_edit_delete'), ]

视图.py 从rest_framework导入视图集 从rest_framework.views导入APIView 从rest_framework.response导入响应 从.models导入库存 从 .serializer 导入 InventorySerializer 从rest_framework导入状态

#在这里创建您的观点

类 InventoryItemListAPIView(APIView): def get(自身, 请求, *args, **kwargs): items = Inventory.objects.all() 序列化器= InventorySerializer(项目,许多= True) 返回响应(serializer.data,status=status.HTTP_200_OK)

def post(self, request, *args, **kwargs):
    serializer = InventorySerializer(data=request.data)
    if serializer.is_valid():
        serializer.save()
        return Response(serializer.data, status=status.HTTP_201_CREATED)
    return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

类 InventoryItemCategoryListAPIView(APIView): def get(自我, 请求, 类别, *args, **kwargs): items = Inventory.objects.filter(类别=类别) 序列化器= InventorySerializer(项目,许多= True) 返回响应(serializer.data,status=status.HTTP_200_OK)

类 InventoryItemSortAPIView(APIView): def get(自身, 请求, *args, **kwargs): items = Inventory.objects.all().order_by('-price') 序列化器= InventorySerializer(项目,许多= True) 返回响应(serializer.data,status=status.HTTP_200_OK)

类 InventoryItemEditAPIView(APIView): def put(self, request, item_id, *args, **kwargs): 尝试: item = Inventory.objects.get(id=item_id) 序列化器= InventorySerializer(实例=项目,数据= request.data,部分= True) 如果序列化器.is_valid(): 序列化器.save() 返回响应(serializer.data,status=status.HTTP_200_OK) 除了 Inventory.DoesNotExist: 返回响应({'错误':'找不到项目'},状态= status.HTTP_404_NOT_FOUND)

    return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)


def delete(self, request, item_id, *args, **kwargs): 
    try: 
        item = Inventory.objects.get(id=item_id) 
        item.delete() 
        return Response(status=status.HTTP_204_NO_CONTENT) 
    except Inventory.DoesNotExist: 
        return Response({'error': 'Item not found'}, status=status.HTTP_404_NOT_FOUND)
© www.soinside.com 2019 - 2024. All rights reserved.