我如何从3个表Django获取数据多对多关系

问题描述

class Product(models.Model):
    name = models.CharField(max_length=30)

class Order(models.Model):
    order_number = models.CharField(max_length=30)
    products = models.ManyToManyField(
        Product,through='OrderProduct',related_name='orders'
    )

class OrderProduct(models.Model):
  order = models.ForeignKey(Order,on_delete=models.CASCADE)
  price =  models.CharField(max_length=30)
  quantity = models.IntegerField(null = True)
  product = models.ForeignKey(Product,on_delete=models.CASCADE)

现在我在获取订单时,我的数据已经保存在这些模型中,然后我想查看订单产品数据,又如何查看这些数据?

再次有1个订单具有多个订单商品

我试试这个

abc = Order.object.get(id = 1)

现在如何查看相关产品及其数量和价格?

解决方法

请尝试这个。

abc = Order.object.get(id = 1)

OrdProducts = abc.product.all()

,
OrdProducts = abc.product.all()
for ord in OrdProducts:
    print(ord.product)
    print(ord.price)
    print(ord.quantity)