Значок DANGO CSRF не будет показывать
Вот соответствующий фрагмент HTML в шаблоне:
<form action="/submit_text/" method="post">
{% csrf_token %}
{% include "backbone/form_errors.html" %}
{{form.as_p}}
<input type="submit" value="Submit" />
</form>
Вот мое объявление settings.py
MIDDLEWARE_CLASSES
:
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',
)
токен CSRF просто не отображается, вызывая
Запрещено (403) Ошибка CSRF. Запрос прерван.
Ответы
Ответ 1
Вам нужно передать RequestContext
в render_to_response
для фактического запуска контекстных процессоров.
from django.template import RequestContext
context = {}
return render_to_response('my_template.html',
context,
context_instance=RequestContext(request))
новый render
ярлык (django 1.3+) сделает это за вас:
from django.shortcuts import render
context = {}
return render(request, 'my_template.html', context)
Ответ 2
Пока есть проверенный ответ, я хочу указать, что запись context_instance....
становится очень раздражающей. Я считаю это полезным... особенно с forms
context.update(csrf(request))