django – POST方法总是返回403禁止
发布时间:2020-12-16 23:05:38 所属栏目:Python 来源:网络整理
导读:我已经阅读了 Django – CSRF verification failed和几个与django和POST方法相关的问题(和答案).其中一个最佳但不工作的答案是 https://stackoverflow.com/a/4707639/755319 所有批准的答案建议至少3件事情: 使用RequestContext作为render_to_response_call
|
我已经阅读了
Django – CSRF verification failed和几个与django和POST方法相关的问题(和答案).其中一个最佳但不工作的答案是
https://stackoverflow.com/a/4707639/755319
所有批准的答案建议至少3件事情: >使用RequestContext作为render_to_response_call的第三个参数 我完全按照建议,但错误仍然出现.我使用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个问题: >如何解决这个错误? 解决方法
尝试将RequestContext放在search_form视图的render_to_response中:
context_instance=RequestContext(request) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
