Сохранить токен csrf при чтении веб-страницы

У меня есть частичное представление, и я предоставляю его по некоторому URL-адресу:

url(r'^main.html$', PartialGroupView.as_view(template_name='main.html'), name='main')

Я пытаюсь прочитать этот URL-адрес в другом месте кода с помощью:

partial = urllib2.urlopen(partial_url).read()

И чем я хочу отправить его пользователю, например:

return HttpResponse(partial)

И все работает нормально, но проблема в том, что страница содержит токен csrf и после этого, когда пользователь получает страницу, которая ему отправлена, он пытается отправить форму, но когда он это делает, выдается ошибка, мол токен отсутствует или неверен. На первом этапе, если я использую только этот метод для отправки представления пользователю, то токен работает правильно.

Итак, есть ли способ сохранить этот токен, когда я читаю страницу таким образом? Или есть другой способ прочитать страницу, не нарушая csrf?

Личное решение:

В моем случае я решил, что будет лучший подход к этому, и отказался от чтения html с URL-адреса. Я просто отправляю часть таким образом:

render(request, demanded_partial_name)

так как он доступен локально.


person victor175    schedule 16.12.2014    source источник


Ответы (1)


Самый простой вариант — сделать представление исключенным из CSRF, как показано здесь.

Скорее всего, лучше проверить этот ТАК пост. По сути, вы передаете словарь параметров при кодировании URL-адреса, и этот словарь будет содержать токен промежуточного программного обеспечения csrf.

person ekrah    schedule 16.12.2014
comment
В конце концов я обратился к другому решению, но ваш ответ помог мне понять это, и это правильный подход, так что спасибо. (: - person victor175; 17.12.2014
comment
Рад, что смог помочь. Было бы неплохо добавить решение, которое вы придумали, на случай, если кто-то еще столкнется с этим вопросом с той же проблемой, что и у вас. - person ekrah; 17.12.2014