1

複数のアプリを含むDjango1.3プロジェクトを開発しています。プロジェクトの構造は次のようになります。

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

ここで、アプリに異なるhandler404とhandler500を定義します。これは、HTMLを返すapiときにJSONをweb返すことになっており、デフォルトのハンドラーを使用できるためです。

この設定をオーバーライドして、1つのアプリに対してのみ有効にする方法はありますか?そのため、複数のサーバーインスタンスを実行することは避けたいと思っています。

ありがとうサイモン

4

2 に答える 2

2

Djangohttphandler404はサイトにとってグローバルです。あなたの場合、URL(またはのその他の属性)に応じて、アプリrequestの場合はJSONを返し、apiアプリの場合はHTMLを返すラッパービューを作成する必要がありますweb。で個別のエラー処理ビューを定義し、ラッパービューから呼び出すこともapiできwebます。

参照:エラービューのカスタマイズ

于 2012-09-07T07:18:10.733 に答える
1

リクエストのコンテンツタイプ、accept-encoding、パスに応じて特定のエラーハンドラーにディスパッチするグローバル404および500ハンドラーを定義できます。もちろん、これらの特定のハンドラー関数は、アプリモジュールに含めることができます。

于 2012-09-07T07:17:22.660 に答える