【发布时间】:2021-09-02 21:48:04
【问题描述】:
使用 Django Rest Framework,我正在尝试创建一个 API 端点来确定项目的给定名称是否已经存在。
如果是这样,那么我们应该通过返回400 Bad Request 让前端应用知道。如果它不存在,那么我们发送一个肯定的200 OK 请求。
我发现我可以发送一个 400 就好了,但如果该项目不存在,我会收到一个 404 我无能为力。
views.py
>from rest_framework import viewsets,status
from rest_framework.response import Response
from .serializers import *
class ItemCheckViewSet(viewsets.ModelViewSet):
"""
The views that are returned when we peform checks against the items
"""
lookup_field = 'name'
queryset = Item.objects.all()
def get_serializer_class(self):
return ItemSerializer
def retrieve(self, request, *args, **kwargs):
instance = self.get_object()
serializer = self.get_serializer(instance)
if len(serializer.data) > 0:
return Response("Item already exists", status.HTTP_400_BAD_REQUEST)
return Response("Item does not exist", status.HTTP_200_OK)
serializers.py
>from rest_framework import serializers
from .models import Item
class ItemSerializer(serializers.ModelSerializer):
class Meta:
model = Item
fields = "__all__"
【问题讨论】:
-
我觉得这篇文章可以帮到你DRF custom error
标签: python django django-rest-framework