Я пробираюсь через 'Разработка веб-сайтов Django 1.0' и столкнулся с проблемой при использовании форм. Сервер пожаловался на что-то, касающееся csrf. Я мог бы решить это, добавив {% csrf_token %}
сразу после тега формы. Я уже прочитал документацию на djangoproject.com, но должен признать, что не до конца понимаю, что именно здесь происходит. Я не использую промежуточные классы.
Настоящая проблема началась, когда я добрался до ajax. Я следовал инструкциям в книге к письму, но сервер начал жаловаться:
"POST /save/?ajax HTTP/1.1" 403 2332
Вот код, который может вызвать проблемы:
function bookmark_save() {
var item = $(this).parent();
var data = {
url: item.find("#id_url").val(),
title: item.find("#id_title").val(),
tags: item.find("#id_tags").val()
};
$.post("/save/?ajax", data, function (result) {
if (result != "failure") {
item.before($("li", result).get(0));
item.remove();
$("ul.bookmarks .edit").click(bookmark_edit);
}
else {
alert("Failed to validate bookmark before saving.");
}
});
return false;
}
'/ save / & ajax' обрабатывается
if ajax:
return render_to_response('bookmark_save_form.html', variables)
Здесь bookmark_save_form.html:
<form id="save-form" method="post" action="/save/">
{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="save" />
</form>
Насколько я понимаю, я должен передать csrf_token с запросом POST. Но я понятия не имею, как.
Любой совет по этому поводу был бы великолепен.