Сессии в 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 если он есть?
Спасибо!