即使客户端设置了" Accept:application / json"我的Django Rest Framework模型视图仍然会将Django的html页面抛给客户端。默认情况下,DRF似乎只包含一些例外的JSON。如果发生任何异常,如何防止返回30kb html页面(在Debug中)?在调试和生产环境中都有。
答案 0 :(得分:2)
听起来您正在谈论当DEBUG
设置为True
并且引发未处理的异常时它将为您生成的Django错误页面。 Django REST框架只会为您处理特定的异常并将其转换为格式化的响应,您可以阅读有关exception handling in the DRF documentation的更多信息。
如果您自己提出这些错误,可以将基本异常更改为an APIException
,然后将其转换为400错误并格式化为客户端。这些与您在获得验证错误时通常会看到的相同。
如果您不是提出这些错误的人,您应该考虑手动捕获它们。 DRF尝试主动避免错误,因此如果由于DRF呼叫而出现错误,我建议opening a ticket关于它。否则,您应该能够将其包装在标准try...except
块中,并将异常重新引发为APIException
,以便DRF正确格式化。