如何在使用值时获取其他字段数据并在Django中为组添加注释

问题描述 投票:0回答:1

我想为特定品牌的每个product_type_id获取1个产品。因此,我编写了此查询以返回正确的输出,但是在我的产品模型中,还有其他几个字段(如product_name,product_info等)无法访问,为什么?它只返回product_type_id和价格。

plans_data = Product.objects.filter(brand__brand_id = brand_data_1.brand_id).values('product_type_id').annotate(min_brand_price=Min('product_price'))
django django-models django-views django-orm
1个回答
0
投票

我认为您可以通过两个步骤实现目标,

  1. 使用查询,但添加产品ID
  2. 使用步骤1的所有产品ID用in运算符过滤产品

类似这样的东西,

plans_id = Product.objects.filter(brand__brand_id = brand_data_1.brand_id).values('product_type_id').annotate(min_brand_price=Min('product_price'), min_id=Min('product_id'))
plans_data = Product.objects.filter(product_id__in=[plan_id[2] for plan_id in plans_id])
© www.soinside.com 2019 - 2024. All rights reserved.