在 Django 休息框架中发生特定异常时如何更改响应中收到的状态代码

How to change the status code that is recieved in the response in case of specific exceptions in Django rest framework

我正在从 React 前端向我的 Django 模型添加一些细节。一切正常,API 请求是使用 Axios 发出的。正在提交的数据是与用户的 OneToOne 字段,因此多次提交会引发 Unique Constraint 的完整性错误。但是我收到的响应状态为 200。这会在我的前端触发一个通知,说明每次按下按钮时提交的详细信息。然而。由于完整性错误而没有第二次提交。

我的问题是,如果我单独处理完整性错误异常,我该如何发送不同的状态而不是 200,如下所示

config: {transitional: {…}, transformRequest: Array(1), transformResponse: Array(1), timeout: 0, adapter: ƒ, …}
data: {message: 'UNIQUE constraint failed: teacher_teacherdetail.user_id'}
headers: {content-length: '39', content-type: 'application/json'}
request: XMLHttpRequest {onreadystatechange: null, readyState: 4, timeout: 0, withCredentials: false, upload: XMLHttpRequestUpload, …}
status: 200
statusText: "OK"

目前我正在处理异常如下

try:
 # some code
    
    except IntegrityError as e:
      
      message = {
       "error": str(e)
      }
      
      return Response(message)
    
    
    except Exception as e:
      
      message = {
        "message": "exception",
        "error": str(e)
      }
      
      return Response(message)

您需要指定错误。 在这里你可以找到 all valid variables

from rest_framework import status

message = {
    "error": str(e)
}
      
return Response(message, status=status.HTTP_400_BAD_REQUEST)