2

我想创建每个月产品的前五名畅销产品。

我听说这种情况必须使用注释,但我不知道如何使用它。

有人会好心帮助我吗??

4

2 回答 2

7

您需要提供更多信息,然后任何人才能为您提供有用的答案。描述你知道什么,你尝试过什么,详细说明你希望完成什么。

同时,您可以通过阅读 django 的聚合文档annotate()了解 django 的功能,并查看一些示例。

于 2009-04-30T14:12:52.427 回答
5

注释不是唯一的方法。您也可以使用extra聚合,尽管它可能不是很有效,这将依赖于特定于您的数据库的 sql。这种方法在 App Engine 中不起作用,但应该在符合 SQL 的数据库中起作用。

例如,假设您有一个Product模型和一个SalesOrder模型,其中模型中SalesOrder的每个模型都有一个行项目。product_idorder_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]
于 2009-04-30T15:12:04.437 回答