【发布时间】:2020-02-29 11:14:38
【问题描述】:
我有两个表品牌和一个产品。每个品牌都有多种产品。
所以。我使用 prefetch_related 以最低产品价格获取特定品牌的相关产品。但问题是当我有 2 个价格相同的产品时,它会同时选择两条记录,那么如何限制呢?
alternatives_data = Brand.objects.filter(category__category_slug = category_slug).prefetch_related(
Prefetch('products', queryset=Product.objects.annotate(
min_brand_price=Min('brand__products__product_price')
).filter(
product_price=F('min_brand_price')
).order_by('product_id')))
我尝试了所有方法,但没有任何效果!
【问题讨论】:
-
你需要在查询集中使用切片
[0]它很有用 -
no slicing 在此不起作用。
-
不,它只适用于 prefetch_related 的普通过滤器不起作用。
-
当有两种产品时,如何确定使用哪一种?
标签: django django-models django-views django-orm