我正在建立一个电子商务网站,我允许来宾用户将产品添加到他们的购物车中,以保存会话中的cart_id
;当他们继续进行结帐时,我将其重定向到结帐视图中,如下所示进行登录
if not request.user.is_authenticated:
login_url = reverse('accounts:login')
check_out_url = reverse('cart:checkout')
redirect_url = "{}?next={}".format(login_url, check_out_url)
return redirect(redirect_url)
# checkout process here
它可以工作,但是cart_id
不在会话中。
如果我不使用下一个参数,而只是重定向到login_url
,则cart_id
会保持会话状态。
P.S:
login_required_decorator
有没有办法使会话数据保持完整?
答案 0 :(得分:0)
我们需要更多信息才能确定,但这是基于经验的最佳猜测:
您确定重定向以cookie的方式将您带到同一个域吗?
例如,如果您在students.get(0).getCourses()
上通过了身份验证,并且foo.somedomain.com
引用了next
,那么Django(默认情况下)将要为这两个单独的域使用单独的cookie。 / p>
要使Django在给定域的所有子域中使用cookie,您需要将www.somedomain.com
(docs)设置为该域。例如settings.SESSION_COOKIE_DOMAIN