您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

django – POST方法总是返回403禁止

5b51 2022/1/14 8:22:21 python 字数 2911 阅读 552 来源 www.jb51.cc/python

我已经阅读了 Django – CSRF verification failed和几个与django和POST方法相关的问题(和答案).其中一个最佳但不工作的答案是 https://stackoverflow.com/a/4707639/755319 所有批准的答案建议至少3件事情: >使用RequestContext作为render_to_response_call的第三个参数 >使用POST方

概述

所有批准的答案建议至少3件事情:

>使用RequestContext作为render_to_response_call的第三个参数
>使用POST方法在每个窗体中添加{%csrf_token%}
>检查settings.py中的MIDDLEWARE_CLASSES

我完全按照建议,但错误仍然出现.我使用django 1.3.1(从ubuntu 12.04仓库)和python 2.7(认从ubuntu)

这是我的观点:

# Create your views here.
from django.template import RequestContext
from django.http import HttpResponse
from django.shortcuts import render_to_response
from models import BookModel

def index(request):
    return HttpResponse('Welcome to the library')

def search_form(request):
    return render_to_response('library/search_form.html')

def search(request):
    if request.method=='POST':
        if 'q' in request.POST:
            q=request.POST['q']
            bookModel = BookModel.objects.filter(title__icontains=q)
            result = {'books' : bookModel,}
            return render_to_response('library/search.html',result,context_instance=RequestContext(request))
        else:
            return search_form(request)
    else:
        return search_form(request)

这是我的模板(search_form.html):

{% extends "base.html" %}
{% block content %}
<form action="/library/search/" method="post">
    {% csrf_token %} 
    <input type="text" name="q">
    <input type="submit" value="Search">
</form>
{% endblock %}

我重新启动了服务器,但403禁止错误仍然存??在,告诉CSRF验证失败.

我有2个问题:

>如何解决这个错误
>为什么在django中做一个“POST”很难,我的意思是有什么具体的原因让它如此冗长(我来自PHP,从来没有发现过这样的问题)?

context_instance=RequestContext(request)

总结

以上是编程之家为你收集整理的django – POST方法总是返回403禁止全部内容,希望文章能够帮你解决django – POST方法总是返回403禁止所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶