2010-03-19 12 views
1

Je place une boîte de connexion avec une boîte de recherche par mot-clé dans 404.html dans un projet Django, donc si une erreur 404 est levée, les visiteurs auront plus d'options pour passer à d'autres parties.Faire un middleware CSRF dans les pages d'erreur 404 de Django

Mais le middleware CSRF ne fonctionne pas dans la page d'erreur 404 sans rendu de jeton csrf. J'ai essayé de déplacer 'django.middleware.csrf.CsrfViewMiddleware' au début de MIDDLEWARE_CLASSES dans settings.py mais cela n'a pas fonctionné non plus.

Quelqu'un connaît une solution?

+0

Avez-vous mis un marqueur de jeton csrf sur la page 404 et n'a généré aucun jeton? –

+0

Votre question est trop ouverte ... quels sont les résultats que vous obtenez? Avez-vous tout essayé sur cette page: http://docs.djangoproject.com/en/dev/ref/contrib/csrf/ –

+0

il obtient une 'vérification CSRF échouée', le jeton ne génère pas. – zalew

Répondre

0

Mon idée est que vous devriez faire your own error handler et générer le jeton manuellement avec django.middleware.csrf.get_token()

1

On dirait qu'ils ont fixé ce dans Django http://code.djangoproject.com/ticket/14565

Cela dit, il n » t semble être dans la dernière version, j'ai donc créé une vue d'erreur personnalisée avec le même contenu que 'django.views.defaults.page_not_found', ce qui rend les changements trouvés dans le fichier diff billet.