Сессии в Django 3, Python

Такой вопрос: Делаю корзину на сайте, хочу хранить товары в корзине в БД. Создал модель "ProductInCart" в которой есть поле "session_key" которое является внешним ключом на модель Session:

session_key = models.ForeignKey(Session, on_delete=models.CASCADE, related_name='session_keys')

Таким образом при удалении сессии у меня удаляются записи из "ProductInCart" которые уже не актуальны. Это всё прекрасно работает, до тех пор пока пользователь авторизован.

У не авторизованного же пользователя появляется ошибка "django.contrib.sessions.models.Session.DoesNotExist: Session matching query does not exist"

Новую запись в модели "ProductInCart" создаю так:

session_key = request.session.session_key

ProductInCart.objects.create(product=Products.objects.get(slug=slug), session_key=Session.objects.get(session_key=session_key))

Я понимаю, что данную ошибку получаю из-за того, что у не авторизованного пользователя нет объекта сеанса или у этого объекта нет session key.

Могу ли я как то перед тем, как создаю объект в модели "ProductInCart" создать объект Session у не авторизованного пользователя? Или же получить session_key если он есть?

Спасибо!


Ответы (0 шт):