Python 通过csrfContext传递变量的帮助
我有一个登录页面,在我看来,我将csrf_标记的csrfContext变量传递给它。然而,当我试图将更多的变量传递到上下文中时,就会出现问题。例如,如果我使用locals() 我得到一个csrf错误。出于某种原因,只有当我显式地传递csrfContext,并且只传递csrfContext时,它才起作用。但是,我还需要传递其他变量。如何将csrfContext和这些变量一起传递?对不起,如果这是一个复杂的问题。我的查看代码是:Python 通过csrfContext传递变量的帮助,python,django,csrf,Python,Django,Csrf,我有一个登录页面,在我看来,我将csrf_标记的csrfContext变量传递给它。然而,当我试图将更多的变量传递到上下文中时,就会出现问题。例如,如果我使用locals() 我得到一个csrf错误。出于某种原因,只有当我显式地传递csrfContext,并且只传递csrfContext时,它才起作用。但是,我还需要传递其他变量。如何将csrfContext和这些变量一起传递?对不起,如果这是一个复杂的问题。我的查看代码是: def index(request): current = M
def index(request):
current = Module.objects.all()
error = ""
try:
error = request.GET["alert"]
if error == "failure":
error = "Woops! Something went wrong. Please try again."
elif error == "invalid":
error = "Invalid username/password."
else:
error = "Unknown Error. Please try again."
except:
pass
csrfContext = RequestContext(request, error, current)
return render_to_response('base_index.html', csrfContext)
如您所见,我一直在尝试向RequestContext添加变量,但我不知道如何在模板中访问它们。我不建议以这种方式使用locals()。在更复杂的视图中,最终可能会传递更多所需的模板渲染
一个更好的方法是创建RequestContext,然后传入您想要添加的值,或者在后面添加它们:我使用了
返回render\u to\u response('base\u index.html',locals(),csrfContext)
,这在发布此消息几秒钟后就成功了。我将return语句修改为:return render\u to\u response('base\u index.html',locals(),csrfContext)
,一切正常!
def index(request):
current = Module.objects.all()
error = ""
try:
error = request.GET["alert"]
if error == "failure":
error = "Woops! Something went wrong. Please try again."
elif error == "invalid":
error = "Invalid username/password."
else:
error = "Unknown Error. Please try again."
except:
pass
csrfContext = RequestContext(request, error, current)
return render_to_response('base_index.html', csrfContext)