gpt4 book ai didi

Django 1.2.4 CSRF 验证失败

转载 作者:行者123 更新时间:2023-12-04 07:59:23 26 4
gpt4 key购买 nike

当我执行 POST 表单时,Django 1.2 一直给我这个 CSRF 验证错误。我“认为”我已经完成了 Django 1.2 文档中要求的所有事情,即,

  • 确保 MIDDLEWARE_CLASSES 包含在“django.middleware.csrf.CsrfViewMiddleware”中
  • 确保 {% csrf_token %}
    <form action="/words/new/" method="post">
    {% csrf_token %}
    {{ form.as_p }}
    <input type="submit" value="Enter" />
    </form>
  • 在我的回复中使用 RequestContext
    def create(request):
    if request.method == 'POST':
    form = DefinitionForm(request.POST)
    if form.is_valid():
    form.save()
    c = {}
    return render_to_response('dict/thanks.html',c,
    context_instance=RequestContext(request))
    else:
    form = DefinitionForm()
    return render_to_response('dict/create_definition.html', {
    'form' : form,
    })

  • 请注意,GET 操作在此函数中起作用。所以我想我正在使用 render_to_response 。

    我什至试图加入 @csrf_protect 装饰器,但似乎也没有用。我已经没有想法了,我快要被我的笔记本电脑噎死了。

    大家能想到什么吗?

    谢谢!

    最佳答案

    你没有遵循#3。 RequestContext必须与显示表单的模板的渲染一起使用。感谢页面不需要。

    return render_to_response('dict/create_definition.html', {
    'form' : form,
    }, context_instance=RequestContext(request))

    作为旁注,您应该使用 PRG pattern而不是直接呈现感谢页面。

    关于Django 1.2.4 CSRF 验证失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4775034/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com