DEBUG = True および TEMPLATE_DEBUG = True で Django 1.4 に移行してから、ローカルでエラーが発生したときに典型的な黄色のエラー画面とトレースバックが表示されなくなりました。代わりに、「エラーが発生しました。ログを確認してください...」という真っ白な画面が表示されます。これは新しい動作ですか、それとも 1.3 と 1.4 のファイルと設定を組み合わせて何かを台無しにしたのでしょうか。
これが私のローカル設定の例です。
DEBUG = True および TEMPLATE_DEBUG = True で Django 1.4 に移行してから、ローカルでエラーが発生したときに典型的な黄色のエラー画面とトレースバックが表示されなくなりました。代わりに、「エラーが発生しました。ログを確認してください...」という真っ白な画面が表示されます。これは新しい動作ですか、それとも 1.3 と 1.4 のファイルと設定を組み合わせて何かを台無しにしたのでしょうか。
これが私のローカル設定の例です。
エラー ハンドラーは django.core.handler.base にあります。handle_uncaught_exception 関数をデバッグしてみてください。
def handle_uncaught_exception(self, request, resolver, exc_info):
"""
Processing for any otherwise uncaught exceptions (those that will
generate HTTP 500 responses). Can be overridden by subclasses who want
customised 500 handling.
Be *very* careful when overriding this because the error could be
caused by anything, so assuming something like the database is always
available would be an error.
"""
from django.conf import settings
if settings.DEBUG_PROPAGATE_EXCEPTIONS:
raise
logger.error('Internal Server Error: %s', request.path,
exc_info=exc_info,
extra={
'status_code': 500,
'request': request
}
)
if settings.DEBUG:
from django.views import debug
ここに合格するかどうかを確認してください return debug.technical_500_response(request, *exc_info)
# If Http500 handler is not installed, re-raise last exception
if resolver.urlconf_module is None:
raise exc_info[1], None, exc_info[2]
# Return an HttpResponse that displays a friendly error message.
callback, param_dict = resolver.resolve500()
return callback(request, **param_dict)
debug.technical_500_response で渡したデバッガーで確認してください