I am attempting to create a relatively simple shopping cart in Django. I am storing the cart in request.session['cart']
. Therefore, I'll need to access the data in this session when anything is added to it. However, if the session is not already set, I cannot access it without receiving an error. Is there any way to check if a session is set, so that it can be set if it doesn't exist?
Asked
Active
Viewed 4.3k times
23

Sabito stands with Ukraine
- 4,271
- 8
- 34
- 56

Julio
- 2,261
- 4
- 30
- 56
2 Answers
56
I assume that you want to check if a key is set in session, not if a session is set (don't know what the latter means). If so:
You can do:
if key not in request.session:
# Set it.
In your case:
if 'cart' not in request.session:
# Set it.
EDIT: changed the code snippet to use key not in
rather than not key in
. Thanks @katrielalex.

Manoj Govindan
- 72,339
- 21
- 134
- 141
-
3The pythonic way would be `if key not in request.session`. – Katriel Oct 11 '10 at 19:29
21
You can use the get
-method on the session dictionary, it will not throw an error if the key doesn't exist, but return none as a default value or your custom default value:
cart = request.session.get('cart')
cart = request.session.get('cart', 'no cart')

Bernhard Vallant
- 49,468
- 20
- 120
- 148