4

Django には組み込みのミドルウェアのリストが付属していますが、それらのすべて (またはほとんど) を使用したい場合は、settings.py ファイルで適切な並べ替えを行うために、大量のドキュメントを処理する必要があります。

すべての組み込み Django 1.1 ミドルウェア クラスの最適な既定の順序はありますか? つまり、何かをコピーして settings.py に貼り付けます。

MIDDLEWARE_CLASSES = (
  # perfect order here please ;-)
)

別の回答: 複数の順序が考えられますか?違いは何ですか?

ちなみに、順序重要ですが、AuthenticationMiddleware の前の SessionMiddleware など、デフォルトの依存関係の一部しか認識していません。

4

1 に答える 1

10

コア Django ミドルウェアのデフォルト リストがあります。

MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
)

上記のタプルの最後に、作成したり、サード パーティから取得したその他のものを追加できます。Django の本では、ビュー リクエストの場合、順序はビューからCommonMiddlewareAuthenticationMiddleware最終的にはビューまでであると述べています。AuthenticationMiddlewareリターン応答では、順序が からに逆になりCommonMiddlewareます。これがそのドキュメントです。

コメントに応えて:

Django のチケットを精査したところ、これは Django 開発者コミュニティの既知の問題のようで、まだ最終的な回答はないと思います。これは、ジェイコブがそれを閉じた部分と一緒に議論を含むチケットです. その問題を Django チケットとして再度持ち込んで、公式の開発者の応答を得ることをお勧めします。

于 2009-11-30T15:05:39.353 に答える