与调用上下文更新(csrf(请求))

2024-06-28 19:15:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我对任何调用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))

Tags: toifrequestcontextupdaterenderpostcsrf
1条回答
网友
1楼 · 发布于 2024-06-28 19:15:39

您对render_to_response使用了错误的参数。{应该是。在

因为您并没有真正使用RequestContext,所以没有一个上下文处理器可以工作。一旦您替换它,就不再需要手动添加CSRF令牌。在

content_type完全是另一个东西-响应的MIME类型。因为它不需要RequestContext实例,所以它不会引发错误有点令人惊讶。在

相关问题 更多 >