Я работаю в интернет-магазине в Django (сейчас это просто базовая корзина), и я планирую добавить функциональность для пользователей, чтобы отмечать товары как избранные (как в stackoverflow). Модели для корзины выглядят примерно так:
class Cart(models.Model):
user = models.OneToOneField(User)
class CartItem(models.Model):
cart = models.ForeignKey(Cart)
product = models.ForeignKey(Product, verbose_name="produs")
Модель избранного - это просто таблица с двумя строками: user и product.
Проблема в том, что это будет работать только для зарегистрированных пользователей, так как мне нужен объект пользователя. Как я могу также разрешить незарегистрированным пользователям использовать эти функции, сохранять данные в файлах cookie / сеансах, а также когда и если они решат зарегистрироваться, перемещать данные своему пользователю?
Полагаю, одним из вариантов были бы какие-то родовые отношения, но я думаю, что это немного сложно. Может быть, после user имеется дополнительная строка, которая является объектом сеанса (я до сих пор не использовал сеансы в django), и если для пользователя задано значение None, используйте это?
Итак, в общем, я хочу спросить: если у вас была эта проблема раньше, как вы ее решили, какой подход был бы лучшим?