2

各月の商品のベストセラーのトップ 5 を作成したいと思います。

この場合、注釈を使用する必要があると聞きましたが、使用方法がわかりません。

誰か助けてくれませんか??

4

2 に答える 2

7

誰かが有用な回答を提供する前に、より多くの情報を提供する必要があります。知っていること、試したこと、達成したいことについて詳しく説明してください。

それまでの間、django の機能について学び、django の集計ドキュメントannotate()を読んでいくつかの例を確認してください。

于 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 に答える