我对任何调用context.update(csrf(request))
在通过POST调用的页面上设置csrf的视图都有问题。这个问题基本上是我不能使用任何自定义上下文处理器或{% if user.is_authenticated %}
我正在使用RequestContext(request)
对render_to_response
有什么办法解决这个问题吗?在
if not request.POST:
return HttpResponseRedirect('/')
searchpilotidform = searchpilotid()
searchcallsignform = searchcallsign()
searchairportform = searchairport()
searchairportpairform = searchairportpair()
searchpilotnameform = searchpilotname()
pilots = cid.objects.filter(realname__icontains=request.POST['name'])
context = {'searchairportpairform': searchairportpairform, 'searchpilotnameform': searchpilotnameform, 'searchpilotidform': searchpilotidform, 'query': request.POST['name'], 'pilots': pilots, 'searchcallsignform': searchcallsignform, 'searchairportform': searchairportform}
context.update(csrf(request))
return render_to_response('pilotnamesearch.html', context, content_type=RequestContext(request))
您对
render_to_response
使用了错误的参数。{应该是。在因为您并没有真正使用RequestContext,所以没有一个上下文处理器可以工作。一旦您替换它,就不再需要手动添加CSRF令牌。在
content_type
完全是另一个东西-响应的MIME类型。因为它不需要RequestContext实例,所以它不会引发错误有点令人惊讶。在相关问题 更多 >
编程相关推荐