Как создать класс Custom Response во фреймворке Django REST
Я использую django rest framework api в качестве бэкенда для своего проекта. Я решил создать пользовательский класс Response для проекта и собрал код, показанный ниже:
class CustomResponse(Response):
def __init__(self, error=None, message=None, data=None, status_code=None, *args, **kwargs):
self.error = '' if error is None else error
self.message = {} if message is None else message
self.data = {} if data is None else data
self.status_code = status.HTTP_200_OK if status_code is 1 else status.HTTP_400_BAD_REQUEST
return super().__init__(data = {'error': self.error, 'message': self.message, 'data': self.data, 'status_code': self.status_code}, status=self.status_code, *args, **kwargs)
Есть ли лучший способ сделать это? Например, мне следует расширить этот класс CustomResponse или создать совершенно новый класс каким-то другим способом?
CustomResponse используется для возврата сериализованных данных из представлений, созданных путем наследования APIView. Я использовал для этого непосредственно Response и хотел сделать что-то, что позволит мне легко добавлять дополнительные детали в зависимости от того, был ли Response успешным или в нем возникли ошибки.
Я много искал, и все, что я нашел, было похоже на код, который я сделал выше. Но я чувствую, что чего-то не хватает и что я должен сделать что-то другое.