2012-09-07 3 views
0

여러 개의 응용 프로그램이 포함 된 Django 1.3 프로젝트를 개발 중입니다. 이 프로젝트 구조는 다음과 같이 다소이다Django 프로젝트의 각 응용 프로그램마다 다른 오류 처리기가 있습니다.

- MyProject 
    - manage.py 
    - MyProject 
    - settings.py 
    - url.py 
    - wsgi.py 
    - core 
    - models.py 
    - web 
    - urls.py 
    - views.py 
    - api 
    - urls.py 
    - views.py 

web 반환 HTML이 기본 핸들러를 사용할 수 있지만 JSON을 반환하도록되어 있기 때문에 지금의 api 응용 프로그램에 대해 서로 다른 handler404 및 handler500을 정의하고 싶습니다.

하나의 앱에서만 유효하도록이 설정을 재정의 할 수있는 방법이 있습니까? 그 때문에 단지 여러 개의 서버 인스턴스를 실행하는 것을 피하고 싶습니다.

감사합니다 사이먼

답변

2

Django httphandler404는 사이트의 글로벌 사이트입니다. 귀하의 경우에는 URL (또는 request의 다른 속성)에 따라 api JSON 및 web app 용 HTML을 반환하는 래퍼보기를 작성해야합니다. 또한 래퍼보기에서 호출 할 수있는 apiweb에서 별도의 오류 처리보기를 정의 할 수 있습니다.

참조 : Customizing error views

1

당신은 요청 내용 유형, 동의를 인코딩 및/또는 경로에 따라 특정 오류 처리기에 파견 글로벌 404 및 500 핸들러를 정의 할 수 있습니다. 이러한 특정 핸들러 함수는 물론 앱 모듈에 살 수 있습니다.

관련 문제