@sergeykons

Возможно ли хранить список в сессии Django?

Доброе время суток.

Появилась задача, хранить корзину пользователя в сессии. Возможно ли передавать в словарь request.sessions по нужному мне ключу, не строчку а список python из которого потом будет рендериться корзина
  • Вопрос задан
  • 1062 просмотра
Решения вопроса 1
@artinnok
бекенд-программист
Да, это возможно - примерно так:
pk = form.cleaned_data.get('pk')
    request.session.setdefault('cart', [])
    if pk in request.session['cart']:
        # удаляем из корзины, если товар добавлен
        request.session['cart'].remove(pk)
    else:
        # добавляем в корзину
        request.session['cart'].append(pk)
    request.session.modified = True
    return HttpResponse('ok')
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Можно, если список будет состоять из хорошо сериализуемых объектов. Почитайте документацию, всё прекрасно расписано, попробуйте сделать тестовый view с записью интересующих вас объектов в сессию.
Лучше всё же завести модель с foreign key к Session и вашей модели с товарами. Гораздо проще следить за товарами в корзине, не нужно каждый раз дёргать сессию и заставлять пользователя ждать валидации товаров.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы