2012-08-28 4 views
0

DEBUG = True 및 TEMPLATE_DEBUG = True로 Django 1.4로 이동 한 이후로 로컬에서 오류가 발생하면 일반적인 노란색 오류 화면에 추적 기능이 표시되지 않습니다. 대신 "오류가 발생했습니다. 로그를 확인하십시오."라는 평범한 흰색 화면이 나타납니다. 이것은 새로운 행동인가 아니면 1.3과 1.4 파일 및 설정을 결합하여 무언가를 망쳤습니다.Django 1.4 로컬 500 오류 페이지

여기 가 handle_uncaught_exception 기능을 디버깅하려고 django.core.handler.base에 위치하는 example of my local settings.

+0

다른 곳에서 문제가 발생해야합니다. 트레이스 백 k 세부 정보 페이지는 여전히 django 1.4의 일부입니다. 디버그 모드 – jdi

+0

어떻게 그 코드를 실행합니까? localhost 서버에 적절한 오류 정보가 표시됩니다. STATIC_URL을 (를) 사용하지만 MEDIA_URLS을 (를) 사용하여 충돌이 발생합니까? 게시물을 예제 설정에 대한 링크로 업데이트했습니다. – Tom

+0

그리고'python manage.py runserver'를 사용하고 있습니까? 'runserver' 관리 명령은 로그를 유지하지 않으므로 실제 웹 서버를 실행하고 있음을 나타내는 것처럼 보입니다. –

답변

1

오류 처리기입니다.

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 

검사는 (* exc_info 요청을) 당신이 debug.technical_500_response

전달 디버거

# 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를 전달하는 경우

+0

아아, 날 고쳐 줬어. 어떤 이유로 (내 프로젝트 뼈대 코드 변경하기) (https://bitbucket.org/tclancy/deployment/changeset/06d72a3c12d8c1b2a1e9fa09e27e19be151a2f98#chg-DjangoDefaults/project/local_settings.py), DEBUG_PROPAGATE_EXCEPTIONS = True를 설정에 추가했으나 나는 Pastebin에서 필자의 예제 파일을 함께 작성했을 때 그 파일을 붙여 넣지 않았다. 버그 요약 : 나는 바보입니다. 감사. – Tom