首页 > 解决方案 > 更改 HTTP 响应消息 Django

问题描述

我正在使用 http 响应来处理我网站中的异常。我想在创建和更新数据期间显示正确的消息/验证。但它显示 HTTP 响应,如 Bad Request 、内部服务器错误。这是我的代码:

from django import http
from rest_framework import viewsets

class SaleViewSet(viewsets.ModelViewSet):

def create(self, request, *args, **kwargs):
     data = request.data
     try:
       // Some code
        return http.JsonResponse(response)

    except Exception as e:
       logger.error(e)
       return http.HttpResponseBadRequest(content=e)

在对话框消息中显示“错误请求”。我想显示自定义消息,而不是对话框消息中的“错误请求”。

我想要做 ,

 except Exception as e:
           logger.error(e)
           return http.HttpResponseBadRequest(My message)

标签: djangohttp

解决方案


您可以使用JsonResponse对象

创建自定义错误响应处理程序

from django.http import JsonResponse
def error_response(message, status, error=None):
    response = dict()
    response["error"] = error
    response["detail"] = message

    return JsonResponse(response, status=status)

在你看来

except Exception as e:
    logger.error(e)
    # call custom error_response handler
    message = 'My message'
    return error_response(message=message, error=e, status=status.HTTP_400_BAD_REQUEST)

推荐阅读