如何使用django制作购物车

如何使用django制作购物车,django,python-3.x,sqlite,django-models,relationship,Django,Python 3.x,Sqlite,Django Models,Relationship,我正在做一个购物车与两类模型,一个用户可以订购多个产品 我使用多对多关系。但是我面临一些问题,比如如果两个用户订购了相同的产品,那么最后一个用户选择的数量将显示在两个用户的订单中。很多时候,默认情况下,它会显示用户购物车中的所有订单。 请告诉我写这些模型的正确方法。因此,每个用户购物车不会影响其他用户 class OrderItem(models.Model): id = models.AutoField(primary_key=True) product = models.On

我正在做一个购物车与两类模型,一个用户可以订购多个产品 我使用多对多关系。但是我面临一些问题,比如如果两个用户订购了相同的产品,那么最后一个用户选择的数量将显示在两个用户的订单中。很多时候,默认情况下,它会显示用户购物车中的所有订单。 请告诉我写这些模型的正确方法。因此,每个用户购物车不会影响其他用户

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)

对于给定的产品,您应该能够有一个以上的订单。 因此,OrderItem应该具有产品的FK,而不是onetoone

我认为您不会在多个购物车中拥有相同的订单,因此您可能需要从OrderItem到用户购物车的单个FK