因此,我需要存储来自一个视图的两个变量,并重定向到另一个视图并显示它们。显而易见的解决方案是使用sessions,但我没有访问sessions的权限,因为我没有这个项目的数据库,所以我尝试使用sessions客户端,因为这无论如何都不是真正的安全问题。到目前为止,这是我的尝试:
查看我设置cookie的位置:
response = HttpResponse('/result')
response.set_cookie('passes', True)
response.set_cookie('errors', [])
v = jsonschema.Draft4Validator(schema)
#Uses lazy validation to add all errors to validationErrors array
for error in v.iter_errors(jsonFile):
validationErrors.append(error)
response.set_cookie('passes', False)
for error in validationErrors:
error.schma_path = error.schema_path.__str__()[5:]
print error.schma_path
print error.schema_path
response.set_cookie('errors',validationErrors)
...
return redirect('/result')
查看我尝试获取cookie的位置:
passes = request.COOKIES.get('passes',"Doesn't Exist")
errors = request.COOKIES.get('errors', "Doesn't Exist")
return render(request, 'result.html', context = {'errors': errors, 'passes': passes})
没有设置传递和错误,因为它们都返回不存在。在不返回原始页面的情况下,我如何做到这一点?我不想返回response where response =render_to_response(当前视图的模板),因为它违背了我想要做的事情。
发布于 2018-06-07 04:34:43
您不会获得任何cookie值,因为实际上在为响应分配cookie之后,该函数将返回另一个Http响应。
response = HttpResponse('/result') # first Http Response
response.set_cookie('errors', [])
...
return redirect('/result') # An other one
在最后一行中,您返回另一个响应。
因此,您应该返回相同的响应:
response = redirect('/result') # redirect is here
response.set_cookie('errors', [])
...
return response
https://stackoverflow.com/questions/50728929
复制相似问题