2010-05-05 4 views
1

일부 처리를 수행하는 미들웨어가 있습니다. 특정 조건에서 예외가 발생하고 사용자가 500.html 템플릿을보고 500 http 상태에 올바르게 응답합니다.미들웨어에서 템플릿을 렌더링 할 수 있습니까?

이제 예외를 제외하고 다른 템플릿을 기본값 500.html보다 렌더링하고 싶습니다. 그것은 가능한가/달성하는 방법인가?

답변

1

을 . 또는 리디렉션이 적절할 수도 있습니다.

+0

링크가 만료되었습니다. 업데이트하십시오. –

0

예 ... 아니요.

웹 서버는 원하는대로 렌더링 할 수 있지만 브라우저 설정을 통해 사용자가 원하는대로 렌더링할지 여부를 사용자가 볼 수 있습니다. 당신이 무언가를 렌더링 할 수도 있지만, 브라우저는 여전히 표준 오류 페이지를 보여줍니다.

0

미들웨어는 해결책이 될 수 있습니다

class MyExceptionMiddleware: 
    def process_exception(self, request, exception): 

    if isinstance(exception, CustomException): 
     template = loader.get_template('Other500.html') 
     context = RequestContext(request, {'message': 'Custom Message'}) 
     return HttpResponseForbidden(template.render(context)) 

    return None 

settings.py에서 미들웨어 등록하는 것을 잊지 마십시오 당신은 사용자 지정 서식 파일을 렌더링 할 return a HttpResponse object를 그 예외를 잡을 수

MIDDLEWARE_CLASSES = (
    .... 
    'app.middleware.MyExceptionMiddleware', 
관련 문제