#python #django #error-handling
#python #django #обработка ошибок
Вопрос:
Я хочу написать пользовательский обработчик ошибок django, как в пользовательском обработчике ошибок flask. Предположим, у меня есть 100 API, которые каждый раз получают одну и ту же ошибку, скажем
json.decoder.JSONDecodeError
Пример кода
def post(self, request):
if not request: return Response({"message": "Please enter credentials"})
input_param = json.load(request)
print(input_param)
return "something"
Приведенный выше код вернет json.decoder.JSONDecodeError, если в post-запросе не передаются параметры.
В flask это можно обработать, написав пользовательский обработчик ошибок, например
@app.errorhandler(json.decoder.JSONDecodeError)
def handle_marshmallow_validaton_errors(err):
return jsonify({"error": "Bad request"}), 400
Есть ли в django какой-либо способ написать пользовательские обработчики ошибок
Заранее спасибо
Ответ №1:
Я думаю, вы можете использовать пользовательский обработчик исключений DRF https://www.django-rest-framework.org/api-guide/exceptions/#custom-exception-handling . вы можете использовать его для проверки возникшего исключения и возврата правильного ответа.