【发布时间】:2009-04-30 14:07:48
【问题描述】:
我想创建每月前五名的畅销产品。
听说这种情况必须使用注解,但不知道怎么用。
有人愿意帮助我吗??
【问题讨论】:
-
给我们您当前的代码。如果您没有任何问题,那么您很可能会在编写过程中回答您自己的问题。
标签: django annotations
我想创建每月前五名的畅销产品。
听说这种情况必须使用注解,但不知道怎么用。
有人愿意帮助我吗??
【问题讨论】:
标签: django annotations
您需要提供更多信息,然后其他人才能为您提供有用的答案。描述你知道什么,你尝试过什么,详细说明你希望完成什么。
同时,您可以了解 django 的 annotate() 函数,并通过阅读 django 的 aggregation documentation 查看一些示例。
【讨论】:
注释不是唯一的方法。您也可以使用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]
【讨论】: