Lista padrão de middleware embutido do django
-
10-07-2019 - |
Pergunta
Django vem com um Lista de middleware interno, mas se alguém quiser usar todos (ou a maioria) deles, ele terá que trabalhar com toneladas de documentos para obter a classificação certa no arquivo Settings.py.
Existe uma ordem padrão ideal de tudo Aulas de middleware do Django 1.1 embutidas? Ou seja, algo para copiar'n'paste em Settings.py:
MIDDLEWARE_CLASSES = (
# perfect order here please ;-)
)
Resposta alternativa: Existem várias pedidos possíveis e qual seria a diferença?
A propósito: o pedido é significativo, mas estou ciente de algumas dependências padrão, como sessionMiddleware antes da autenticaçãoMiddleware.
Solução
Eles têm um Lista padrão Para o middleware do principal django:
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
)
Quaisquer outros que você criar ou obter de terceiros podem ser adicionados no final da tupla acima. O livro de Django também menciona que, em uma solicitação de visualização, a ordem é de CommonMiddleware
para AuthenticationMiddleware
e finalmente para a sua opinião. Em uma resposta de retorno, a ordem é revertida de AuthenticationMiddleware
para CommonMiddleware
. Aqui está o Doc para isso.
Em resposta ao comentário:
Depois de vasculhar os ingressos do Django, parece que esse foi um problema de conhecimento com a comunidade do Django Dev e acho que ainda não há uma resposta final. Aqui está o bilhete que contém a discussão junto com a parte em que Jacob a fechou. Você pode querer tentar trazer esse problema novamente como um ticket django para obter uma resposta oficial de desenvolvimento.