关于注释django

时间:2009-04-30 14:07:49

标签: django annotations

我想在每个月创造出五大畅销产品。

我听说这个案例必须使用注释,但我不知道如何使用它。

有人会善意帮助我吗?

2 个答案:

答案 0 :(得分:7)

在任何人为您提供有用的答案之前,您需要提供更多信息。描述你所知道的,你曾尝试过的,详细阐述你希望实现的目标。

同时,您可以了解django的annotate()函数,并通过阅读django的aggregation documentation来查看一些示例。

答案 1 :(得分: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]