检查Django中是否设置了会话密钥

时间:2010-10-11 18:01:04

标签: python django

我试图在Django中创建一个相对简单的购物车。我将购物车存放在request.session ['cart']中。因此,当添加任何内容时,我将需要访问此会话中的数据。但是,如果尚未设置会话,则无法在未收到错误的情况下访问它。无论如何都要检查会话是否已设置,以便在不存在的情况下进行设置?

2 个答案:

答案 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')