問題タブ [django-aggregation]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
django - 集約と注釈対シグナルの効率
ユーザーが自分のサイトに投稿した回数を数えて、サイトでランク付けできるようにしたいと考えています。まさにそれを行う美しいコードを書くことができましたが、それはユーザーごとに行われました。
ユーザーはフィールドごとに異なる量のポイントを取得するため、モデルの特定のフィールドと、ユーザーがそれらに値を入力したかどうかをチェックします。次に、これらの値に重みを掛けて合計スコアを求めます。
少しのコードよりも優れているものはありません。
トップ 10 も表示したいので、トップ 10 のユーザーを取得する必要があります。これは、現時点では失敗し続けている複雑な集計を作成する必要があるか、次の方法でシグナルを使用できることを意味します。
モデルが保存されたら、post_save シグナルをキャッチします。次に、既存のクラスを使用してユーザーのポイントを再計算し、ユーザー プロファイルに保存します。このようにして、プロファイルの値でユーザーを並べ替えることができますが、これは簡単なことです。
問題は、モデルが保存されるたびに再カウントを行うこと、またはかなり複雑な集計関数を行うことのどちらがより効率的かということです。これは多くのことに依存することはわかっていますが、概念的な観点からは、どちらかを選択する理由があるはずです。集約でチェックするフィールドの一部はリレーショナルでもあることに注意してください。そのため、パフォーマンスにどのように影響するかはわかりません.
前もって感謝します、
tBuLi
python - DjangoのQuerySetでstartTimeとendTimeフィールドを使用して期間を計算するには?
私はこのモデルを持っています:
QuerySet API のみを使用して平均時間間隔を集計するにはどうすればよいですか?
私はこれを試しました:
しかし、それはスローします:
django - Djangoでグループ化して集約する方法
ORMを介して作成したい非常に単純なクエリがありますが、それを理解できません。
私は3つのモデルを持っています:
場所(場所)、属性(場所が持つ可能性のある属性)、および評価(スコアフィールドも含むM2M'から'モデル)
いくつかの重要な属性を選択し、それらの属性によって自分の場所をランク付けできるようにしたいです。つまり、選択したすべての属性よりも合計スコアが高い=より良いです。
次のSQLを使用して、必要なものを取得できます。
これは
ORMで取得できる最も近いものは次のとおりです。
どちらが
つまり、場所ごとにグループ化されていない、すべての合計です。
これを回避する方法はありますか?SQLを手動で実行することもできますが、一貫性を保つためにORMを使用したいと思います。
ありがとう
django - 関連モデルのサブセットの最新のインスタンスでdjangoクエリセットをソートする
Order モデルと order_event モデルがあります。各 order_event には、注文する外部キーがあります。したがって、注文インスタンスから取得できます: myorder.order_event_set
. すべての注文のリストを取得したいのですが、最後のイベントの日付で並べ替えたいです。次のようなステートメントは、最新のイベント日付でソートします。
しかし、私が本当に必要としているのは、A SUBSET OF EVENTS の最新の日付でソートされたすべての注文のリストです。たとえば、私のイベントは「スケジューリング」、「処理」などに分類されているため、最新のスケジューリング イベントでソートされたすべての注文のリストを取得できるはずです。この django doc (https://docs.djangoproject.com/en/dev/topics/db/aggregation/#filter-and-exclude) は、フィルターを使用して最新のスケジュール イベントを取得する方法を示していますが、これはスケジュールのない注文を除外しますイベント。
フィルタリングされたクエリセットを、スケジュール イベントが欠落している注文を戻すクエリセットと組み合わせることができると考えましたが、これを行う方法がよくわかりません。Python リストの使用に関連する回答を見ましたが、適切な django クエリセット (つまり、ページネーションを含むビューなど) を使用する方がはるかに便利です。
再編集: コメント/提案
また、複数のステートメントで実行してもかまいません。また、私は巨大なデータセットを扱っていないので、orm の代わりに python を介してソートなどを行っても問題ありません。可能であれば、あなたが言及した理由から、SQLから離れたいと思います。別々の並べ替えられたクエリセットを組み合わせることは有望に思えますが、私は立ち往生しています。
django - Djangoの値の集計クエリセット
と呼ばれるValuesQuerySetがありdata
ます。
各オブジェクトのすべてのタイプの要約カウントを取得しようとしています
data.values('type')
この出力を生成します:
私はこのような内訳を取得したいと思います(選択肢として「内部」と「外部」だけではありません。これは最大20の異なるタイプである可能性があります:
私はこれを試していますが、空の辞書を返しているだけです...
Annotateは、望ましくない結果も生成しています。
Models.py
django - Django:コメント数で設定された注文クエリ
非常に単純です...私はDjango 1.4.1を使用しており、コメントの数の逆数でクエリセットを注文する必要があります。私はDjangoコメントフレームワークを使用しており、他の回答で推奨されている .annotate(comment_count = Count('comment') 構造を使用しようとしました...「コメント」がフィールドエラーに解決されません。
また、データベース エラーをスローする django-generic-aggregate の 0.3.1 バージョンも試しました。
助言がありますか?
django - djangoでこのクエリに条件を適用します
私はこのようなモデルを持っています:
各カテゴリとショーのすべての予算の合計を見つけたいremaining budget
:
一部のカテゴリにはまだタスクがない場合があります。したがって、次のようにcategories_cost
なります。
したがって、減算しようとすると、次のエラーが発生します。
これを解決する方法は?
python - djangoで集計を使用して最小値フィールド名を取得します
以下のようないくつかのフィールドを持つモデルがあります
だから私は値を持つフィールド名を取得したいlowest price
ので、値を取得するために、lowest price
以下を使用して次のようにすることができますAggregations
最後にfield name
、django の最低価格に関連する を取得する方法は?
django - Django アクティビティ フィード (Feedly 統合?)
シンプルな Django 写真アプリを作成しました。ユーザーは、写真をアップロードしたり、他のユーザーをフォローしたり、写真を気に入ったりすることができます。ユーザー間の関係 (フォローとフォロー解除) を処理するために、coleifer によるdjango-relationshipsというパッケージを使用します。それは素晴らしいパッケージであり、非常に使いやすいです。
すべてが正常に機能します。現在、作業アクティビティ フィードがあります。
フィードを 2 つのセクションにフィルター処理します: フォロー中 (私がフォローしているユーザーからのすべてのアクティビティ) とあなた (私に起こったすべてのアクティビティ)。Django フォト アプリをバックエンドとして使用する iOS アプリから、以下の 2 つの写真を投稿しました。
私がやりたいことは、次のフィードに集計を追加することです。ご覧のとおり、ユーザー alexperri は 5 ショットを気に入りました。これらすべての項目を 1 行にまとめたいと思います。「あなた」フィードの集計を追加する必要はありません。個々のアクションが自分に起こっていることを確認したいからです。ただし、次のフィードの場合、集計を追加することは理にかなっています。集計を非常にうまく行うアプリケーションがいくつかあります。Fashionlista、Pinterest、Instagram はこれをうまく行っています。これは、私が達成しようとしていることを示すInstagramの例です。
上記の例では、次のフィードと、lovetoronto が 5 枚の写真を気に入ったことがわかります。Instagramの次のフィードをいじって、それがどのように機能するかを確認し始めました. Instagram のフォロー フィードには最大 35 のアクティビティ エントリが表示され、各エントリにはそのアクション タイプのアクティビティを最大 5 つ含めることができます。「lovetoronto いいね 5 枚の写真」は 1 つのアクティビティ エントリで、彼が最近気に入った 5 枚の写真を示しています。lovetoronto は最新のアクションを実行したため、彼がトップです。
同じ設定を実現したいと思います。
これが私の現在のモデル設定です:
models.py
'Like' オブジェクトが作成されるたびに、Activity オブジェクトも作成します。アクターはアクションを実行した人、レシーバーはアクションが実行された人、つまりアクション (この場合は文字列 ' 「いいね!」)、投稿(写真)、とりあえず活動オブジェクトの作成。
django-tastypie を使用して、「Like」および「Activity」オブジェクトを取得および作成します。
api.py
アクティビティ オブジェクトを集約するように、FollowingFeed リソースを変更するにはどうすればよいですか? Feedlyプロジェクトに出会いました。現在のセットアップでどのように使用できますか?
django - Django order_by() フィルターと distinct()
どうやったらこんなの作れるんだろうorder_by
....
問題は、同じ名前のベンダーが複数あり、そのベンダーの最新の製品だけが欲しい..
それが理にかなっていると思いますか?
次の DB エラーが発生しました。
SELECT DISTINCT ON 式は最初の ORDER BY 式と一致する必要があります 行 1: SELECT DISTINCT ON ("search_vendor"."name") "search_product"...