使用 Django queryset order_by“外部值”的前 10 名销售产品

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

我正在尝试从我的模型中获得前 10 名销售产品。 型号有: 产品 SoldProducts(售出后包含的产品列表)

我有一个包含产品 PK 的列表和已售出产品的总和:

best_seller_products = SoldProduct.objects.filter(product__in=products, order__in=orders).values(
  'product__pk',).annotate(qty=Sum('quantity')).order_by('-qty')[:6]

作为此查询集的结果:

<QuerySet [{'product__pk': 5, 'qty': 22}, {'product__pk': 6, 'qty': 6}]>

所以我列了两个清单。一个带有 product_pk,另一个带有 qty。使用 product_pk a 得到了带有此查询的产品列表:

  best_seller_products = products.filter(pk__in=list_best_seller_products_pk)

我想解决的问题是: 如何对我通过 product_pk 获得的产品列表和数量列表进行排序。 我最喜欢使用查询而不是在产品模型中创建“已售出”字段。

我真的很感激任何关于如何去做的帮助或指导! 非常感谢

python django django-queryset qobject
© www.soinside.com 2019 - 2024. All rights reserved.