Django 重载错误消息源于错误的GET请求

Django 重载错误消息源于错误的GET请求,django,django-rest-framework,Django,Django Rest Framework,我有这样一个观点: class Foo(APIView): def get(self, request, format = None): #... 所以我的问题很简单:如何覆盖POST请求时返回的错误消息?首先,您需要覆盖.POST()方法。根据视图中的实现,如果要返回错误,请返回Django Rest框架,而不是Django的HttpResponse 您的最终视图可能类似于: from rest_framework.views import APIView from r

我有这样一个观点:

class Foo(APIView):
    def get(self, request, format = None):
       #...

所以我的问题很简单:如何覆盖POST请求时返回的错误消息?

首先,您需要覆盖
.POST()
方法。根据视图中的实现,如果要返回错误,请返回Django Rest框架,而不是Django的
HttpResponse

您的最终视图可能类似于:

from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework.status import HTTP_400_BAD_REQUEST


class Foo(APIView):

    def post(self, request):
        try:
            # code that raises an error
        except:
            error_msg = {
                'error': 'Your error message here.'
            }
            return Response(
                data=error_msg, status=HTTP_400_BAD_REQUEST
            )

也许我没有把这个问题解释清楚。我的基于类的视图没有任何post方法。当有人试图调用post方法时,我想覆盖Django的默认错误消息——对于只有GET请求的视图,要覆盖post错误消息,必须实现post方法