Я пытаюсь создать относительно простую корзину покупок в Django. Я сохраняю корзину в request.session ['cart']. Поэтому мне нужно будет получить доступ к данным в этом сеансе, когда к нему добавится что-либо. Однако, если сеанс еще не установлен, я не могу получить к нему доступ без получения ошибки. Нужно ли вообще проверять, установлен ли сеанс, чтобы его можно было установить, если он не существует?
Проверьте, установлен ли ключ сеанса в Django
Ответ 1
Я предполагаю, что вы хотите проверить, установлен ли ключ в сеансе, а не если задан сеанс (не знаете, что последнее означает). Если да:
Вы можете сделать:
if key not in request.session:
# Set it.
В вашем случае:
if 'cart' not in request.session:
# Set it.
EDIT: изменил фрагмент кода, чтобы использовать key not in
, а не not key in
. Спасибо @katrielalex.
Ответ 2
Вы можете использовать get
-метод в словаре сеанса, он не будет вызывать ошибку, если ключ не существует, но не возвращает значение в качестве значения по умолчанию или вашего настраиваемого значения по умолчанию:
cart = request.session.get('cart')
cart = request.session.get('cart', 'no cart')