Я использую Django API Oscar Restful и настраиваю его. Я хочу переопределить класс Response инфраструктуры Django rest, чтобы в ответе содержалось сообщение с тремя параметрами, состояние и данные. Я знаю, что для ModelViewSet на основе классов я могу переопределить метод create и вернуть пользовательский ответ, но я хочу реализовать его для всех API, поэтому мне не нужно переписывать все API, которые Django oscar RESTFUL API обеспечивает по умолчанию.
пользовательский ответ, который я хочу вернуть из всех представлений:
{
"status": True
"data": [
{
"var1": 1,
"var2": 2
}
],
"message": "This is my success message",
}
В случае ошибок отображаются ошибки по умолчанию в следующем формате:
{
"email": [
"Enter a valid email address."
]
}
or
{
"name": [
"This field may not be blank."
]
}
Я хочу изменить этот формат и всегда возвращать Ответ в следующем формате:
{
"status": False
#Here i want the errors as handled by Django rest, but not in the list format, i want the error msg same as Given by Django rest, as:"
"message": 'name :This field may not be blank.'
or
"message": 'email: Enter a valid email address.'
}
Я проверил, как сделать custom_exception_handler , но я не знаю, как мне реализовать это для всех моих представлений (на основе классов или представлений API). Я знаю, что должен использовать классы 'renderer' . Рендерер манипулирует и возвращает структурированный ответ.
Пожалуйста, могу ли я получить пример того, как я могу вернуть этот формат в случае успеха и неудачи в API.