Faça o middleware da CSRF funcionar nas páginas de erro 404 de Django
-
21-09-2019 - |
Pergunta
Coloquei uma caixa de login sozinha com uma caixa de pesquisa de palavras -chave em 404.html em um projeto Django; portanto, caso um erro 404 seja levantado, os visitantes obtêm mais opções para pular para outras partes.
Mas o middleware do CSRF não funciona na página de erro 404 sem token CSRF renderizado. Eu tentei mover 'django.middleware.csrf.csrfviewmiddleware' para o primeiro de middleware_classes em configurações.py, mas também não funcionou.
Alguém conhece uma solução?
Solução
Minha ideia é que você deveria fazer Seu próprio manipulador de erros e gerar o token manualmente com django.middleware.csrf.get_token ()
Outras dicas
Parece que eles consertaram isso em django http://code.djangoproject.com/ticket/14565
Dito isto, não parece estar no último lançamento, então criei uma visualização de erro personalizada com o mesmo conteúdo que 'django.views.defaults.page_not_found'
, fazendo as alterações encontradas no arquivo diff bilhete.