SWFUpload с проблемой Django 1.2 csrf - PullRequest
3 голосов
/ 04 июля 2010

Я пытаюсь загрузить файлы в Django с помощью SWFUpload.Нашел эту статью Django с SWFUpload .Но нашел одну проблему.В Django 1.2 csrf требует, чтобы токен csrf отправлялся при каждой отправке формы, и он включает файлы, которые отправляются с помощью SWFUpload. Поэтому загрузка не выполняется до тех пор, пока я не отключу csrf (глобально или для просмотра с помощью декоратора @csrf_exempt).Есть ли лучший способ справиться с этим, а не выключать csrf?

Я знаю, что могу передавать пользовательские данные с помощью SWFUpload post_params: {"csrfmiddlewaretoken": ""} ,.Но я не знаю, как получить только значение токена csrf в шаблоне, а не полный тег ввода.

1 Ответ

2 голосов
/ 04 июля 2010

Чтобы получить сам токен csrf, вам нужно прибегнуть к использованию некоторых внутренних компонентов Django. Прежде всего, включите эту строку вверху вашего представления.

from django.middleware.csrf import get_token

Теперь при передаче параметров в шаблон сделайте что-то вроде

def my_view(request):
    return render_to_response("index.html", {"csrf_token": get_token(request)})

В вашем шаблоне просто укажите токен с помощью {{ csrf_token }}.

...