1

我需要检查会话是否已设置...我遵循了 stackoverflow 的一些解决方案,但仍然存在问题

if request.session.get('orderId',None):
    request.session['orderId']=ts
    orderId=request.session['orderId']
else:
    orderId=request.session['orderId']

它在下面的 orderId 处说 keyError:

4

2 回答 2

3

你的条件是倒置的。尝试反转:

if not request.session.get('orderId', None):
    request.session['orderId'] = ts
    orderId = request.session['orderId']
else:
    orderId = request.session['orderId']

.get('orderId', None)将返回Noneif not request.session.get('orderId', None)并将指导您填充会话,这(可能)是您想要的。

更好的方法是

orderId = request.session.setdefault('orderId', ts)

如果存在,这将从会话中为您orderId提供,否则它将填充会话ts并返回给您。

于 2012-05-08T05:08:16.757 回答
1

get 方法的整个想法是保持代码干净。这应该有效:

orderId = request.session.get('orderId',ts)

编辑:

对不起,我错过了这个:

orderId = request.session.get('orderId',ts)
request.session['orderId']=ts

不需要 if 和 else ...

于 2012-05-08T05:11:28.923 回答