Django w/Apache,CSRF验证失败

Django w/Apache,CSRF验证失败,django,apache,csrf,Django,Apache,Csrf,我的Django应用程序中的CSRF验证有点问题。我的应用程序中还有两个{%csrf\u token%}标记,位于两个不同的HTML模板中。这些很好用,而且一直都有。当尝试在另一个新模板中添加第三个模板时,我收到了“403禁止”页面。我已经完全复制了两个工作的“post”命令的样式,但由于某些原因,这一个将无法工作。有什么建议吗 “post”表单包含一个选择/下拉对象和一个提交按钮。点击按钮应该指向一个视图来处理发布的数据,就像前2个一样再次写入,但它会抛出403错误,失败的原因是“CSRF令牌

我的Django应用程序中的CSRF验证有点问题。我的应用程序中还有两个
{%csrf\u token%}
标记,位于两个不同的HTML模板中。这些很好用,而且一直都有。当尝试在另一个新模板中添加第三个模板时,我收到了“403禁止”页面。我已经完全复制了两个工作的“post”命令的样式,但由于某些原因,这一个将无法工作。有什么建议吗

“post”表单包含一个选择/下拉对象和一个提交按钮。点击按钮应该指向一个视图来处理发布的数据,就像前2个一样再次写入,但它会抛出403错误,失败的原因是“CSRF令牌丢失或不正确”。我还运行Django 1.4.22,启用了用户身份验证。以下是“不工作”视图:

from django.shortcuts import render_to_response, get_object_or_404
from django.template import RequestContext
from django.http import HttpResponseRedirect
from django.core.urlresolvers import reverse
from django.contrib.auth.decorators import login_required

...Other Views...
@login_required
def Process(request, id):
    ...
    try:
        choice = request.POST['choice']
    except(KeyError, Item.DoesNotExist):
        return render_to_response('app/home.html', context_instance=RequestContext(request))
    else:
        ...Process posted data...

    return HttpResponseRedirect(reverse('app.views.display', args=()))
#Same includes/imports as earlier, in same file
@login_required
def Submit(request, id, id_2, data):
    try:
        new_data = request.POST[data.name]
    except(KeyError, DataPoint.DoesNotExist):
        return render_to_response('app/home.html', context_instance=RequestContext(request))
    else:
        ...Process new data...
        return HttpResponseRedirect(reverse('app.views.Data_View', args=()))
以下是工作视图:

from django.shortcuts import render_to_response, get_object_or_404
from django.template import RequestContext
from django.http import HttpResponseRedirect
from django.core.urlresolvers import reverse
from django.contrib.auth.decorators import login_required

...Other Views...
@login_required
def Process(request, id):
    ...
    try:
        choice = request.POST['choice']
    except(KeyError, Item.DoesNotExist):
        return render_to_response('app/home.html', context_instance=RequestContext(request))
    else:
        ...Process posted data...

    return HttpResponseRedirect(reverse('app.views.display', args=()))
#Same includes/imports as earlier, in same file
@login_required
def Submit(request, id, id_2, data):
    try:
        new_data = request.POST[data.name]
    except(KeyError, DataPoint.DoesNotExist):
        return render_to_response('app/home.html', context_instance=RequestContext(request))
    else:
        ...Process new data...
        return HttpResponseRedirect(reverse('app.views.Data_View', args=()))
这是HTML文件:

<!DOCTYPE html>
...
<table>
<tr><td>
<form action="/app/page/to/redirect/to/" method="post">
    {% csrf_token %}
    <select name="choice">
        <option name="yes" value="yes" selected>Yes</option>
        <option name="no" value="no">No</option>
    </select>
</form></td></tr>...</table>

...
{%csrf_令牌%}
对
不
...

是否已将csrf_标记添加到视图中的渲染上下文中?你能展示你的观点吗?我不知道你的意思。我在任何观点中都没有提到csrf_令牌,包括那些有效的。仅在模板中。您必须使用来自django.core.context\u的
处理器导入csrf
或来自django.views.decorators.csrf导入csrf\u protect的
或来自我尝试添加您建议的第一个导入行的其他方法,但没有更改。我没有任何类似的东西,但其他2个仍然有效。请显示“工作”和“不工作”视图,编辑您的问题。