Reason given for failure: CSRF cookie not set. In general, this can occur when there is a genuine Cross Site Request Forgery, or when Django's CSRF mechanism has not been used correctly. For POST forms, you need to ensure: * The view function uses RequestContext for the template, instead of Context. * In the template, there is a {% csrf_token %} template tag inside each POST form that targets an internal URL. * If you are not using CsrfViewMiddleware, then you must use csrf_protect on any views that use the csrf_token template tag, as well as those that accept the POST data. You're seeing the help section of this page because you have DEBUG = True in your Django settings file. Change that to False, and only the initial error message will be displayed. You can customize this page using the CSRF_FAILURE_VIEW setting.
解决方案:
1、解决方法错误提示里已经给出了。在表单里加上{% csrf_token %}就行了。
2、加上标红的语句 return render_to_response('polls/detail.html',{'poll':p},context_instance=RequestContext(request))
3、views里面加上这个import from django.template import RequestContext