Проблема с созданием формы входа в Django

Я немного новичок в Django и пытаюсь создать форму входа для пользователей моего сайта. Я использую пользовательское приложение Django. я создал простую форму с полями имени пользователя и пароля следующим образом:

<form id='login-form' action="login" method="post">
<div class='login-field'><input type='text' name='username' placeholder=' Username'></div>
<div class='password-field'><input type='password' name='password' placeholder=' Password'spellcheck='false'></div> <br />
<input type='submit' value='SUBMIT' spellcheck='false'>
</form>

проблема, которую я получаю при нажатии кнопки отправки:

CSRF verification failed. Request aborted

Я просмотрел все решения подобных вопросов на этом и других сайтах, но так и не смог решить проблему, есть предложения?


person Nachshon Schwartz    schedule 25.05.2011    source источник
comment
Просто хотел повторить комментарий @JamesO ниже здесь, на случай, если кто-то, кому нужен этот ответ, пропустит его. Вы должны использовать RequestContext, чтобы {% csrf_token %} возвращал что-либо: return render_to_response('login.html', context_instance=RequestContext(request))   -  person Chris Pratt    schedule 25.05.2011


Ответы (2)


Вам нужно {% csrf_token %} где-то внутри тега <form> в шаблоне.

Дополнительные сведения см. в документах Django о подделке межсайтовых запросов.

person majackson    schedule 25.05.2011
comment
Это должно быть все, что вам нужно. Перед повторной попыткой убедитесь, что вы перезапустили сервер и обновили страницу. - person majackson; 25.05.2011
comment
Вам нужно использовать RequestContext при рендеринге представления. - person Daniel Roseman; 25.05.2011

Посмотрите на защиту от подделки межсайтовых запросов в документах.

В основном вам нужно {% csrf_token %} после тега формы.

person JamesO    schedule 25.05.2011
comment
у вас есть django.middleware.csrf.CsrfViewMiddleware в файле settings.py? Возвращается ли RequestContext вместе с шаблоном? например, вернуть render_to_response('login.html', context_instance=RequestContext(запрос)) - person JamesO; 25.05.2011
comment
добавил... все та же проблема - person Nachshon Schwartz; 25.05.2011