일부 처리를 수행하는 미들웨어가 있습니다. 특정 조건에서 예외가 발생하고 사용자가 500.html
템플릿을보고 500 http 상태에 올바르게 응답합니다.미들웨어에서 템플릿을 렌더링 할 수 있습니까?
이제 예외를 제외하고 다른 템플릿을 기본값 500.html
보다 렌더링하고 싶습니다. 그것은 가능한가/달성하는 방법인가?
일부 처리를 수행하는 미들웨어가 있습니다. 특정 조건에서 예외가 발생하고 사용자가 500.html
템플릿을보고 500 http 상태에 올바르게 응답합니다.미들웨어에서 템플릿을 렌더링 할 수 있습니까?
이제 예외를 제외하고 다른 템플릿을 기본값 500.html
보다 렌더링하고 싶습니다. 그것은 가능한가/달성하는 방법인가?
을 . 또는 리디렉션이 적절할 수도 있습니다.
예 ... 아니요.
웹 서버는 원하는대로 렌더링 할 수 있지만 브라우저 설정을 통해 사용자가 원하는대로 렌더링할지 여부를 사용자가 볼 수 있습니다. 당신이 무언가를 렌더링 할 수도 있지만, 브라우저는 여전히 표준 오류 페이지를 보여줍니다.
미들웨어는 해결책이 될 수 있습니다
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',
링크가 만료되었습니다. 업데이트하십시오. –