Я добавляю некоторые детали в свою модель Django из интерфейса реагирования. Все работает нормально, и запрос API выполняется с помощью Axios. Отправляемые данные представляют собой поле OneToOne с пользователем, и, следовательно, отправка более одного раза вызывает Ошибка целостности уникального ограничения. Но ответ, который я получаю, имеет статус 200. Это вызывает уведомление в моем интерфейсе, в котором сообщается, что детали отправляются каждый раз, когда нажимается кнопка. Однако. который не отправляется во второй раз из-за ошибки целостности.
Мой вопрос: если я обрабатываю исключение Integrity Error отдельно, как я могу отправить другой статус, а не 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)
Вам нужно указать ошибку. Здесь вы можете найти все допустимые переменные
from rest_framework import status
message = {
"error": str(e)
}
return Response(message, status=status.HTTP_400_BAD_REQUEST)