如何连接O2M和M2M关系的表



我有以下相关的数据模型

class Cart(models.Model):
products = models.ManyToManyField('assortment.Product', through='CartProduct')
order = models.OneToOneField('Order', on_delete=models.CASCADE, related_name='order_cart', null=True)
user = models.ForeignKey('account.Profile', on_delete=models.CASCADE, related_name='user_carts', blank=True, null=True)
class CartProduct(models.Model):
product = models.ForeignKey('assortment.Product', related_name='product_cartproducts', null=True, on_delete=models.SET_NULL)
cart = models.ForeignKey('Cart', related_name='cart_cartproducts', null=True, on_delete=models.SET_NULL)
count = models.IntegerField(blank=False, null=False, default=1)
class Order(models.Model):
pay_date = models.DateField(auto_now_add=True)
is_paid = models.BooleanField(default=False)

我下面的代码给出了一个错误:无效参数"产品";预取相关:

Order.objects.all().select_related('order_cart').prefetch_related('products')

如何在一个请求中加入所有三个模型?

查询生成器继续使用原始表(Order(,因此您必须指定相对于该表或相对于前面提到的字段的字段。尝试以下操作之一:

  • 'order_cart__products'
  • 'order_cart__cart_cartproducts'

(注意双下划线。(

最新更新