我有这两种型号:
class Product(models.Model):
name = models.CharField(max_length=100)
...
class ProductPack(models.Model):
product = models.ForeignKey(Product, on_delete=models.CASCADE)
...
price = models.PositiveIntegerField(default=0)
我有一个产品型号查询集:
products = Product.objects.all()
# <ProductQuerySet [<Product: first product>]>
我想订购按“产品 Package 价格”查询的产品。所以我试着通过以下代码来实现:
qs = products.order_by("productpack__price")
这在一定程度上是正确的。但有一个问题。对于产品中的每个对象,此代码将对象返回到productpack中的foreignkey计数。这样地:
qs
<ProductQuerySet [<Product: first product>, <Product: first product>, <Product: first product>]>
如何解决这个问题。你有什么建议吗?
1条答案
按热度按时间r7s23pms1#
按相关字段订购时,如果
product
与多个productpacks
,则在queryset
每人一次productpack
.这可能是您的解决方案: