以纯文本形式返回Django异常

问题描述:

在DEBUG模式下由Django捕获的错误以HTML格式的代码返回,以用于浏览器显示。我希望这些错误以纯文本(或JSON)显示。有没有办法做到这一点?以纯文本形式返回Django异常

+0

所以你想显示一个自定义错误,但只有当DEBUG = True? –

+1

如果设置了ADMINS并填写了电子邮件设置,则在DEBUG关闭时,Djano将向管理员发送包含明文错误的电子邮件。请参阅:https://docs.djangoproject.com/en/dev/howto/error-reporting/#email-reports 文档还说“服务器错误电子邮件是使用日志框架发送的,因此您可以通过自定义来自定义此行为你的日志配置“,这样你可以将它们转储到一个文件中。 从你的问题,我认为你需要明文错误出现在浏览器中,但。 – sandinmyjoints

+0

@sandinmyjoints电子邮件选项很好,但在这种情况下,Django被用作API,我希望前端开发人员能够立即识别错误,而不是等待电子邮件。 – Teebes

我想你可以修改此文件中的模板:https://code.djangoproject.com/browser/django/trunk/django/views/debug.py

变化TECHNICAL_500_TEMPLATETECHNICAL_404_TEMPLATEEMPTY_URLCONF_TEMPLATE显示明文。

+0

This看起来很有希望,但是这需要修补一些Django源代码,这需要在项目级别上做到这一点。...... – Teebes

+0

有可能,但我认为可能没有。 Django的[docs](https://docs.djangoproject.com/en/dev/howto/error-reporting/)非常全面,他们没有提到这样的事情。从[github](https://github.com/django/django)分叉Django并不一定非常重要,因为您可以通过合并来继续升级,而且您不会进行大规模更改。只要我的$ 0.02!祝你好运。 – sandinmyjoints

不是一个直接的解决方案,但也许扔django哨兵进入混合将允许你做更多的东西与报告的错误?我自己还是新手。