Django - brak tokenu CSRF lub niepoprawny
Właśnie zaktualizowałem moje django do 1.4. Ale podczas próby przesłania formularza logowania pojawia się następujący błąd:
Zakazana (403) weryfikacja CSRF nie powiodła się. Żądanie przerwane. Powód dla niepowodzenia: brak tokenu CSRF lub niepoprawny.
W moich ustawieniach.py (MIDDLEWARE_CLASSES) musiałem usunąć następujący wiersz, ponieważ jest teraz przestarzały:
<code>'django.middleware.csrf.CsrfResponseMiddleware', </code>
I wtedy zacząłem otrzymywać ten błąd.
Niektóre niezbędne informacje: Urls.py
<code>url(r'^login/$', 'django.contrib.auth.views.login', {'template_name': 'registration/login.html'}, name='login') </code>
<code>MIDDLEWARE_CLASSES = ( 'django.middleware.gzip.GZipMiddleware', 'django.middleware.common.CommonMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', # 'django.middleware.csrf.CsrfResponseMiddleware', 'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware', ) </code>
login.html
<code>{% extends "base.html" %} {% block title %} Login {% endblock %} {% block content %} <div id="text"> <table> <form action="" method="post"> {% csrf_token %} <tr> <td><label for="username">Email:</label></td> <td><input type="text" name="username" value="" id="username"></td> </tr> <tr> <td><label for="password">Password:</label></td> <td><input type="password" name="password" value="" id="password"></td> </tr> <tr> <td><input type="submit" value="Login" /> {% if next %} <input type="hidden" name="next" value="{{ next }}" /></td> {% else %} <input type="hidden" name="next" value="/" /></td> {% endif %} </tr> </form> </table> {% if form.errors %} <p class="error">User or password incorrect</p> {% endif %} </div> {% endblock %} </code>
Czy ktoś wie, jak rozwiązać ten problem?