Заставьте промежуточное программное обеспечение CSRF работать на 404 страницах ошибок Django - PullRequest
1 голос
/ 19 марта 2010

Я поместил поле входа в систему в одиночку с окном поиска по ключевому слову в 404.html в проекте Django, поэтому в случае возникновения ошибки 404 посетители получают больше возможностей для перехода к другим частям.

Но промежуточное программное обеспечение CSRF не работает на странице с ошибкой 404 без отображаемого токена csrf. Я попытался переместить 'django.middleware.csrf.CsrfViewMiddleware' к первому из MIDDLEWARE_CLASSES в settings.py, но тоже не сработало.

Кто-нибудь знает решение?

Ответы [ 2 ]

1 голос
/ 15 декабря 2010

Похоже, они исправили это в Django http://code.djangoproject.com/ticket/14565

Тем не менее, похоже, что это не в последнем выпуске, поэтому я создал собственное представление об ошибках с тем же содержимым, что и 'django.views.defaults.page_not_found', внося изменения, найденные в файле diff.

0 голосов
/ 19 марта 2010

Моя идея в том, что вы должны сделать вашим собственным обработчиком ошибок и сгенерировать токен вручную с помощью django.middleware.csrf.get_token ()

...