問題タブ [django-queryset]
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 - Django での単純な JOIN
あるユーザーが別のユーザーをフォローできる、自分の Web サイトで Twitter に似た何かを達成しようとしています。特定の ID を持つユーザーをフォローしているすべてのユーザー レコードを選択したいと考えています。私のフォロー関係モデルは次のようになります。
そして、django.contrib.auth.models User クラスを使用しています。
フォローされている人を表す "myUser" という名前の User オブジェクトがあると仮定すると、全員がフォローするための適切なクエリは何ですか?
python - Django アノテーションで関連アイテムをフィルタリングすることは可能ですか?
私は次の2つのモデルを持っています:
これまでのクエリで私がいる場所は次のとおりです。
問題は、過去 30 日間に作成されたジョブのみをカウントしたいことです。ただし、資格のある仕事があるカテゴリだけでなく、すべてのカテゴリを返したいと考えています。
database - Django - フィールドとクエリセットの組み合わせに対して2つのオブジェクトのみを取得する方法
私が持っている場合
content_object=foo、object_id=N のオブジェクトを 1 つだけ取得したい。どうやってやるの?-datetime で注文しているとします。任意の content_type=foo、object_id=N のクエリセットでオブジェクトを 1 つだけ取得できる場合、それは最新のものである必要があります。
次に、クエリセットを取得します。
これにより、過去 24 時間以内のすべてのチェックインが得られますが、content_type=foo および object_id=N ごとに 1 つのオブジェクトのみが必要です。
database - Django-querysetはfield=fooごとに1つのオブジェクトを取得します
私はユーザーに基本的なFKを持っています、それを所有者と呼びます
さて、Bazのクエリセットを使用して、所有者ごとに1つのBazのみを提供するチェーンできるものはありますか?
python - DjangoでDateTimeFieldの日付をフィルタリングするにはどうすればよいですか?
DateTimeField
日付との比較をフィルタリングしようとしています。つまり:
私は時間を考慮していないので(私は思う)、答えとして空のクエリセットリストを取得しますが、「いつでも」したいのです。
Django でこれを行う簡単な方法はありますか?
日時が設定されていますが、そうではありません00:00
。
python - Django QuerySet を使用した Python の基本ツリー
ここで、私がプログラマーの詐欺であることが暴露されます。
データツリーを作成したことがありません。
基本的に、A、B、C、D の 4 つのフィールドを持つテーブルがあります。これらのフィールドに基づいて、順序付けられていないリストのツリーを作成する必要があります。最終的には、次のようになります。
- A1
- B1
- C1
- D1
- D2
- C2
- D3
- D4
- C1
- B2
- C2
- D5
- D6
- C3
- D7
- D8
- C2
- B1
- A2
- B2
- C1
- D9
- D10
- C4
- D11
- D12
- C1
- B3
- C3
- D13
- D14
- C4
- D15
- D16
- C3
- B2
これはかなり基本的な 4 レベルのツリーです...と思います。これは、私がここで表現しているよりもはるかに大きく複雑ですが、要点を理解するにはそれで十分です。
1回のデータベース呼び出しに留めたいと思っていますが、それが可能かどうかはわかりません。
Django QuerySet を使用してデータを取得します。Python を自由に使用できます。
扱いにくくならないようにするには、プログラミング ロジックをどこから始めればよいかさえわかりません。
ポインタ、ガイダンス、リンクなど、何でもいただければ幸いです。
django - クエリセットのキャッシュと再評価
例を簡単にするために、いくつかの不完全なコードを投稿します。階層構造でいくつかのメトリックを計算するために再帰関数を実行しています。
クラス カテゴリ(models.Model):
何が起こっているかを確認するのに十分なコードであることを願っています。ここで求めているのは、これらのクエリをそれぞれ 1 回だけ実行し、結果を渡す再帰関数です。それは現在起こっていないようで、パフォーマンスが低下しています。これが PHP/MySQL であった場合 (Django を使用した後は嫌いですが)、クエリを一度実行して渡すことができました。
Djangoのクエリセットについて私が理解していることから、それらは私の if queryset == None then queryset=stuff 部分で評価されることはありません。どうすればこれを強制できますか? のようなことをすると再評価されmetric_queryset.filter(category=self)
ますか?
データの鮮度は気にしません。メトリックと評価ごとにDBから1回読み取り、後でDBに再度アクセスせずにフィルタリングしたいだけです。非常に単純な答えが必要なように感じる、イライラする問題です。ピクルス化は機能するように見えますが、Django のドキュメントではあまり説明されていません。
django-queryset - 新しいクエリセットを作成せずにDjangoクエリセットをクエリしますか?
私が質問を正しく述べているかどうかさえわかりません。これが状況です。外部キー関係にアクセスして生成されたクエリセットがあります。Djangoドキュメントの標準のブログ/エントリモデルを使用して、ブログを選択し、一連のエントリがあるとします。
したがって、ブログにはいくつかのエントリがあり、おそらくゼロです。次に、カレンダーを作成して、ブログエントリがある日を示します。したがって、私の考えは、その月の日などのリストを繰り返し処理し、エントリのクエリセットでその日付のエントリを確認することです。質問は、これを行うための最良の方法は何ですか?私の最初の考えは次のようなことをすることでした
問題は、フィルター呼び出しが新しいクエリセットを返し、ループの反復ごとに新しいSQL呼び出しを生成することです。エントリが存在する場合はエントリからエントリオブジェクトを取り出して、カレンダーに貼り付ける必要があります。では、これを行うための最良の方法は何ですか?私はこれを機能させました:
これでは、新しいSQL呼び出しは生成されません。しかし、それは確かに醜いようです。
django - Djangoで空のクエリセットをチェックしています
クエリが結果を返したかどうかを確認するための推奨イディオムは何ですか?
例:
これをチェックする方法はいくつかあると思いますが、経験豊富なDjangoユーザーがどのようにチェックするのか知りたいです。ドキュメントのほとんどの例は、何も見つからなかった場合を無視しています...
django - Djangoの関連モデルで注釈付きのCount()で並べ替える方法
Djangoで食品ロギングデータベースを構築していますが、クエリ関連の問題があります。
私は、消費モデルを介してM2Mフィールドの「消費者」を介してユーザーモデルに接続された食品モデルを(とりわけ)含めるようにモデルを設定しました。Foodモデルは食品料理を記述し、Consumptionモデルはユーザーの食品の消費量(日付、量など)を記述します。
そのユーザーのConsumptionテーブルにFoodオブジェクトが表示された回数(ユーザーが食べ物を消費した回数)順に並べられたすべてのFoodオブジェクトを返すクエリを作成したいと思います。
私は次の行で何かを試しています:
ただし、これはもちろん、ユーザーに関連付けられているオブジェクトだけでなく、Foodオブジェクトに関連するすべてのConsumptionオブジェクトをカウントします。モデルを変更する必要がありますか、それともクエリで明らかな何かが欠落しているだけですか?
これはかなりタイムクリティカルな操作であり(特に、フロントエンドのオートコンプリートフィールドに入力するために使用されます)、Foodテーブルには数千のエントリがあるため、データベース側ではなく、データベース側で並べ替えを行います。ブルートフォースメソッドを実行し、次のことを実行して結果を繰り返します。
次に、Pythonソートを使用してそれらをソートします。ユーザーベースが増えるにつれて、この方法はあまり拡張できないと思います。データベースは、最初から可能な限り将来にわたって利用できるように設計したいと思います。
何か案は?