Джанго CSRF проверки - PullRequest
       5

Джанго CSRF проверки

2 голосов
/ 05 июля 2011

Не могу обойти ошибку 403 проверки токена CSRF. Вот что у меня есть:

вид:

from django.template import RequestContext
def add(request, name):
#logic
return render_to_response("category/add.html", {"form": form}, 
    context_instance = RequestContext(request))    

шаблон:

<form action="/category/add/" method="post">
    {% csrf_token %}
    New Category: <input type="text" name="name" id="categoryname" />
    <input type="submit" value="Hinzufuegen" />
</form>

Параметры:

MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
)

Ответы [ 2 ]

2 голосов
/ 05 июля 2011

Вы передаете данные POST в форму для проверки? Вы должны сделать что-то вроде этого:

     from django.template import RequestContext
     def add(request, name):
       # Logic
       if request.type == "POST":
         form = YourFormClass(request.POST)
         if form.is_valid():
             # Success!
         else:
             # Invalid form
       else:
         return render_to_response("category/add.html", {"form": form}, 
         context_instance = RequestContext(request))
1 голос
/ 06 июля 2011

Похоже, вам нужно добавить

'django.middleware.csrf.CsrfViewMiddleware',
'django.middleware.csrf.CsrfResponseMiddleware',

к вашему MIDDLEWARE_CLASSES.Кажется, он не проверяет токен CSRF, просто генерирует ... помог мне в моем случае ...

...