2016-11-18 73 views
0

我必须设置cookie保存在我的项目车的细节,但其工作不工作,当我测试使用功能饼干不是在Django

request.session.set_test_cookie() 

然后设置cookies cookies,但response.set_cookie功能未设定饼干。我试过这段代码。

def index(request): 
    if request.method == 'GET': 
     response = HttpResponse('hello') 
     days_expire = 7 
     max_age = days_expire * 24 * 60 * 60 
     response.set_cookie('my_cookie', 'Product Cart', max_age=max_age) 
     return render(request, 'home/index.py') 

,并为获得COOKIS,该代码被用于

def sport(request): 
    if request.method == 'GET': 
     if 'my_cookie' in request.COOKIES: 
      value = request.COOKIES['my_cookie'] 
      return HttpResponse(value) 
     else: 
      return HttpResponse('Cookie not set') 

它始终打印饼干没有设置字符串,还有什么能背后的原因。

+0

http://stackoverflow.com/questions/5113660/how-to-set-or-get-a-cookie-value-in-django – weltensturm

+0

我已经检查了这个问题,它如何解决我的问题 – Pankaj

+0

您不回复您的回复。 – weltensturm

回答

1

您正在创建两个不同的HttpResponse实例:一个手动创建,另一个由render()调用创建并从视图返回。 您应该保存结果的render()调用和设置Cookie有:

response = render(request, 'home/index.py') 
response.set_cookie('my_cookie', 'Product Cart', max_age=max_age) 
return response 

你还应该考虑:

  • 使用从.py为您的模板不同的extenstion。他们可能会对Python代码文件感到困惑。
  • 使用sessions作为您的送货卡。
+0

Thankyouuu这么多,它解决了我的问题,非常感谢:) – Pankaj

+0

还有一件事我该如何使用“字典”来代替my_cookie变量,如my_cookie.item_count和my_cookie.price – Pankaj

+0

Cookie是文本而已,他们不能直接存储字典,但会话可以做到这一点。如果您需要更多信息,请使用新主题打开一个新问题。 –