Подтвердить что ты не робот

Проверьте, установлен ли ключ сеанса в Django

Я пытаюсь создать относительно простую корзину покупок в Django. Я сохраняю корзину в request.session ['cart']. Поэтому мне нужно будет получить доступ к данным в этом сеансе, когда к нему добавится что-либо. Однако, если сеанс еще не установлен, я не могу получить к нему доступ без получения ошибки. Нужно ли вообще проверять, установлен ли сеанс, чтобы его можно было установить, если он не существует?

4b9b3361

Ответ 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')