как сделать корзину с помощью django - PullRequest
0 голосов
/ 22 апреля 2020

Я делаю корзину для покупок с двумя моделями классов, один пользователь может заказать несколько продуктов. Я использовал отношения «многие ко многим». но я сталкиваюсь с некоторыми проблемами, например, если два пользователя заказывают один и тот же продукт, тогда последний выбранный пользователем номер отображается в порядке обоих пользователей. и много раз он показывает все заказы в корзине пользователя по умолчанию. скажите пожалуйста правильный способ написания этих моделей. Таким образом, каждая корзина пользователей не может влиять на других

class OrderItem(models.Model):
    id = models.AutoField(primary_key=True)
    product = models.OneToOneField(Product, on_delete=models.SET_NULL, null=True)
    is_ordered = models.BooleanField(default=False)
    date_added = models.DateTimeField(auto_now=True)
    qty = models.IntegerField(default=1)
    def __str__(self):
        return self.product.Productname

class Cart(models.Model):
    owner = models.ForeignKey(User, on_delete=models.SET_NULL, null=True)
    is_ordered = models.BooleanField(default=False)
    items = models.ManyToManyField(OrderItem, default=None, blank=True)

1 Ответ

1 голос
/ 22 апреля 2020

Вы должны иметь возможность иметь более 1 заказа для данного продукта. Таким образом, OrderItem должен иметь FK для Продукта, а не один.

Я не думаю, что у вас будет один и тот же заказ в нескольких корзинах, поэтому вам, вероятно, нужен один FK из OrderItem в корзину пользователя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...