Как изменить код состояния, полученный в ответе, в случае определенных исключений в среде Django rest

Я добавляю некоторые детали в свою модель 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)
3 метода стилизации элементов HTML
3 метода стилизации элементов HTML
Когда дело доходит до применения какого-либо стиля к нашему HTML, существует три подхода: встроенный, внутренний и внешний. Предпочтительным обычно...
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
1
0
27
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вам нужно указать ошибку. Здесь вы можете найти все допустимые переменные

from rest_framework import status

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

Другие вопросы по теме