我试图在Django中创建一个相对简单的购物车。我将购物车存放在request.session ['cart']中。因此,当添加任何内容时,我将需要访问此会话中的数据。但是,如果尚未设置会话,则无法在未收到错误的情况下访问它。无论如何都要检查会话是否已设置,以便在不存在的情况下进行设置?
答案 0 :(得分:43)
我假设您要检查会话中是否设置了键,而不是设置了会话(不知道后者是什么意思)。如果是这样的话:
你可以这样做:
if key not in request.session:
# Set it.
在你的情况下:
if 'cart' not in request.session:
# Set it.
编辑:将代码段更改为使用key not in
而不是not key in
。谢谢@katrielalex。
答案 1 :(得分:17)
您可以在会话字典中使用get
- 方法,如果密钥不存在则不会抛出错误,但会将none作为默认值或自定义默认值返回:
cart = request.session.get('cart')
cart = request.session.get('cart', 'no cart')