Я использую Django 1.2.3 , у меня было несколько периодических проблем:
Что нужно сделать:
Убедитесь, что токен csrf присутствуетв вашем шаблоне :
<form action="" method="post">{% csrf_token %}
Используйте RequestContext :
return render_to_response('search-results.html', {'results' : results}, context_instance=RequestContext(request) )
Убедитесь, что вы также используете RequestContext для GET, если они обрабатываютсяс помощью той же функции просмотра и визуализации того же шаблона.
т.е.:
if request.method == 'GET':
...
return render_to_response('search-results.html', {'results':results}, context_instance=RequestContext(request) )
elif request.method == 'POST':
...
return render_to_response('search-results.html', {'results':results}, context_instance=RequestContext(request))
not:
if request.method == 'GET':
...
return render_to_response('search-results.html', {'results':results})
elif request.method == 'POST':
...
return render_to_response('search-results.html', {'results':results}, context_instance=RequestContext(request))
Убедитесь, что django.middleware.csrf.CsrfViewMiddleware указан в вашем файле settings.py
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',
)