2014-04-18 3 views
0

500/400 예외를 잡아서 처리해야하는이 middelware가 있습니다. 그러나 결코 부름을받지 않습니다. 나는 시작과 MIDDLEWARE_CLASSES의 끝 부분에 넣어했지만 여전히 예외가 발생할 때 실행되지 않습니다프로세스 예외가있는 미들웨어는 결코 호출되지 않았습니다

수직/middleware.py :

class HandleExceptionsMiddleware(object): 
     def process_exception(self, request, exception): 
      print >> sys.stderr, "exception has been raised" 
      # Get the exception info now, in case another exception is thrown later. 
      if isinstance(exception, http.Http404): 
        return self.handle_404(request, exception) 
      else: 
        return self.handle_500(request, exception) 

settings.py

MIDDLEWARE_CLASSES = (
     'vertical.middleware.HandleExceptionsMiddleware', 
     'django.contrib.sessions.middleware.SessionMiddleware', 
     'django.middleware.common.CommonMiddleware', 
     'debug_toolbar.middleware.DebugToolbarMiddleware', 
     'django.middleware.csrf.CsrfViewMiddleware', 
     'django.contrib.auth.middleware.AuthenticationMiddleware', 
     'django.contrib.messages.middleware.MessageMiddleware', 
     'django.middleware.clickjacking.XFrameOptionsMiddleware', 
) 
+0

두 가지 빠른 질문 : __init __() 메소드를 추가하면 해당 메소드가 호출됩니까? 그리고 : (manage.py) 쉘에서 "vertical.middleware import HandleExceptionsMiddleWare"를 할 수 있습니까? –

+0

동일한 문제가 있습니다. 해결책을 얻었습니까? – ksrini

+0

오래 전에 솔루션을 기억했습니다. 당신의 설정은 무엇입니까? –

답변

0

미들웨어는 RESP 동안 순서로 실행됩니다 이 단계에서는 에 process_exception이 포함됩니다. 예외 미들웨어가 응답을 반환하면 해당 미들웨어 위의 미들웨어 클래스는 전혀 호출되지 않습니다.

+2

동일합니다. 발행물. 문제는 언급 - 나는 MIDDLEWARE_CLASSES의 시작과 끝에 그것을 넣었지만 여전히 실행되지 않습니다. – ksrini

관련 문제