我想创建每个月产品的前五名畅销产品。
我听说这种情况必须使用注释,但我不知道如何使用它。
有人会好心帮助我吗??
您需要提供更多信息,然后任何人才能为您提供有用的答案。描述你知道什么,你尝试过什么,详细说明你希望完成什么。
同时,您可以通过阅读 django 的聚合文档annotate()
了解 django 的功能,并查看一些示例。
注释不是唯一的方法。您也可以使用extra
聚合,尽管它可能不是很有效,这将依赖于特定于您的数据库的 sql。这种方法在 App Engine 中不起作用,但应该在符合 SQL 的数据库中起作用。
例如,假设您有一个Product
模型和一个SalesOrder
模型,其中模型中SalesOrder
的每个模型都有一个行项目。product_id
order_date
top_products = Product.objects.extra(
select={'num_orders':'select count(product_id) from app_product where app_salesorder.order_date > thirty_days_ago and app_product.id = app_salesorder.product_id'})
.order_by('-num_orders')[:5]