I have to set cookies to save cart details in my project but its not working, when i test cookies using function
request.session.set_test_cookie()
Then it set cookies but response.set_cookie function is not setting cookies. I have tried this code.
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')
and for getting cookis , this code is being used
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')
It always prints cookie not set string, What can be the reason behind it.
You are creating two different HttpResponse
instances: one manually and the other one is created by the render()
call and returned from the view.
You should save the result the of the render()
call and set the cookie there:
response = render(request, 'home/index.py')
response.set_cookie('my_cookie', 'Product Cart', max_age=max_age)
return response
You should also consider:
.py
for your templates. They might get confused with Python code files.