S
S
sergeykons2016-07-21 21:35:24
Django
sergeykons, 2016-07-21 21:35:24

Is it possible to store a list in a Django session?

Good time of the day.
There was a task to store the user's basket in the session. Is it possible to pass to the request.sessions dictionary by the key I need, not a line, but a python list from which the basket will then be rendered

Answer the question

In order to leave comments, you need to log in

2 answer(s)
Артём Иннокентьев, 2016-07-22
@sergeykons

Да, это возможно - примерно так:

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

Егор Стаховский, 2016-07-21
@ySky

Можно, если список будет состоять из хорошо сериализуемых объектов. Почитайте документацию, всё прекрасно расписано, попробуйте сделать тестовый view с записью интересующих вас объектов в сессию.
Лучше всё же завести модель с foreign key к Session и вашей модели с товарами. Гораздо проще следить за товарами в корзине, не нужно каждый раз дёргать сессию и заставлять пользователя ждать валидации товаров.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question