无法在django中输出cookie值

时间:2012-08-21 09:51:37

标签: django

我的view.py

def search(request):
    res = HttpResponse('Setting Response');
    res.set_cookie("name","abcd")
    return render_to_response("search.html", {"res":res})

我的search.html

<html>
<body>
<h1>{{res.COOKIES.name}}</h1>
</body>
</html>

即使{{request.COOKIES.name}}也无效。我无法获得值"abcd"它正在提供" "(空字符串)

请在这方面帮助我

3 个答案:

答案 0 :(得分:4)

试试这个:

from django.shortcuts import render
...
return render(request, "search.html", {"res":res})

因此请求实例将在模板

上可用

<强>更新

如果你的目标是设置一个cookie,然后在模板上检索它,你可以做下一步:

from django.shortcuts import render

def search(request):
    response = render(request, "search.html")
    # render function returns a HttpResponse object
    response.set_cookie("name","abcd")
    return response

然后在模板上:

  

{{request.COOKIES.name}}

解决方案来自here

答案 1 :(得分:1)

请求变量不会自动提供给您的视图。

return render_to_response("search.html", {"request":request})

答案 2 :(得分:0)

您应该尝试在视图中获取Cookie并传入模板或将request变量传递给模板。

另一种方法是启用request context processor,以便模板中默认提供request变量。