我需要检查会话是否已设置...我从stackoverflow中遵循了一些解决方案,但仍然存在问题
if request.session.get('orderId',None):
request.session['orderId']=ts
orderId=request.session['orderId']
else:
orderId=request.session['orderId']
在orderId上的keyError正好在其他地方:
答案 0 :(得分:2)
你的条件被颠倒了。尝试颠倒,如:
if not request.session.get('orderId', None):
request.session['orderId'] = ts
orderId = request.session['orderId']
else:
orderId = request.session['orderId']
.get('orderId', None)
将返回None
和。{
if not request.session.get('orderId', None)
将引导您填充会话,这可能是您想要的。
更好的方法可以
orderId = request.session.setdefault('orderId', ts)
如果存在,这将从会话中为您提供orderId
,否则它将使用ts
填充会话并返回给您。
答案 1 :(得分:1)
get方法的整个想法是保持代码清洁。这应该有效:
orderId = request.session.get('orderId',ts)
编辑:
抱歉,我错过了这个:
orderId = request.session.get('orderId',ts)
request.session['orderId']=ts
不需要if和else ......