2011-08-23 71 views
4

在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

回答

1

我想你可以修改此文件中的模板: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

1

不是一個直接的解決方案,但也許扔django哨兵進入混合將允許你做更多的東西與報告的錯誤?我自己還是新手。

相關問題