Список по умолчанию встроенного промежуточного программного обеспечения Django - PullRequest
4 голосов
/ 30 ноября 2009

Django поставляется с списком встроенного промежуточного программного обеспечения , но если кто-то хочет использовать все (или большинство) из них, он должен пройти через тонны документов, чтобы правильно отсортировать файл settings.py.

Существует ли оптимальный порядок по умолчанию всех встроенных промежуточных классов Django 1.1? Т.е. что-то скопировать и вставить в settings.py:

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

Альтернативный ответ: Есть ли несколько возможных заказов и в чем разница?

Кстати: порядок имеет значение , но мне известны только некоторые зависимости по умолчанию, такие как SessionMiddleware до AuthenticationMiddleware.

1 Ответ

10 голосов
/ 30 ноября 2009

У них есть список по умолчанию для основного промежуточного программного обеспечения Django:

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

Любые другие, которые вы создаете или получаете от третьих лиц, могут быть добавлены в конце кортежа выше. В книге Django также упоминается, что при запросе на просмотр порядок составляет от CommonMiddleware до AuthenticationMiddleware и, наконец, на ваш взгляд. При ответном ответе заказ меняется с AuthenticationMiddleware на CommonMiddleware. Вот для этого документ .

В ответ на комментарий:

После просмотра билетов на Django, похоже, что это была известная проблема сообщества разработчиков Django, и я не думаю, что пока есть окончательный ответ. Вот билет , который содержит обсуждение вместе с частью, где Джейкоб закрыл это. Возможно, вы захотите попытаться снова поднять эту проблему как билет Django, чтобы получить официальный ответ разработчика.

...