关于注释django

2 django annotations

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

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

有人会善意帮助我吗?

vez*_*ult 7

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

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


dar*_*dar 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]
Run Code Online (Sandbox Code Playgroud)