問題タブ [django-q]
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.
python - Q オブジェクトを使用してリストのメンバーシップをテストする方法は?
通常の Django クエリセットで、"a" 属性が 1、2、または 3 の myObjects をすべて取得したい場合は、次のようにします。
しかし、Q オブジェクトを使用してこれを行いたいと思います。Q オブジェクトを使用して同等のクエリを作成するにはどうすればよいですか?
django - Qオブジェクトを使用して、任意の長さのリストのメンバーが多対多の関係にあるかどうかを確認する方法は?
次の Django モデルがあるとします。
さらに、一意の myClass1 のリストがあるとします。
ここで、Q オブジェクトを使用して Django クエリを作成し、myTargetList のいずれかのメンバーを myLocalClass1 として持つすべての myClass2s を返すようにしたいと考えています。さらに、事前に myTargetList の正確なサイズがわかりません。
どうすればいいですか?これは明らかにうまくいきません:
python - Django/Python DRY: Q オブジェクトとモデル属性を操作するときにコードの繰り返しを避ける方法
ユーザーが特定のしきい値基準を満たすモデルのインスタンスを検索できるようにする検索ページを構築しようとしていますが、非常に冗長なコードを回避するのに苦労しています。もっと良い方法があることを願っています。これは、私がやろうとしていることを説明するために少し不自然な例であり、関連するコードは最後に調整されています。ユーザーは、チェックボックスを使用して検索を操作します。
models.py:
ビュー.py:
削減したい関連コードは次のとおりです。これは、名前が変更された、私のプロジェクトからほとんどそのままです。
基本的に、ユーザーが特定のしきい値レベルを満たす特定のオブジェクトのすべてのインスタンスを見つけられるようにしたいと考えています。したがって、たとえば、彼らが悪いと思うすべてのアイスクリームと、彼らがおいしいと思うすべてのアイスクリーム.
このコードには満足できない点がいくつかあります。可能なしきい値ごとに Q オブジェクトがまだインスタンス化されていないかどうかを確認するのは好きではありませんが、それを回避する方法がわかりません。さらに、これがジャンゴ以外の問題である場合は、ループを使用して、指定されたしきい値をそれぞれ書き出すのではなく、それぞれをチェックします。しかし、繰り返しますが、それを行う方法がわかりません。
最後に、最大の問題は、モデルのおそらく 20 の異なる属性のしきい値を確認する必要があることです。現状では、それぞれに対して新しいしきい値チェッカーを作成する必要がありますが、それぞれが他とわずかに異なるだけです (チェックしている属性の名前)。一般的なチェッカーを作成して、特定の属性を渡すことができるようになりたいと思っています。これ、または他の2つの問題を解決する方法はありますか?
ありがとう!
django - djangoのQをdjango taggitで使用するにはどうすればよいですか?
「1」と「2」でタグ付けされた Result オブジェクトがあります。「one」と「two」のタグが付いたオブジェクトを照会しようとすると、何も返されません。
Q で動作しないのはなぜですか? どうすればそれを機能させることができますか?
python - Django Q フィルターが期待どおりに機能しない
ライブラリ スタイルの検索フォーム (新しい行を追加して検索をさらに進めることができ、AND、OR、AND NOT、OR NOT などのリンク語を使用できます) を作成して、フォーム内で検索ステートメントを作成できるようにしました。 Qフィルターに。何らかの理由で、OR が含まれている場合、生成したフィルターはすべてを返すようです。(「またはその中」とは、ユーザーがまたはそのステートメントとして選択したことを意味します)。
例: Q フィルターを作成して、データ フィールドに NAME、値として Test を持つオブジェクト、またはデータ フィールドに Material、値として Steel を持つオブジェクトを取得したいと考えました。
作成した Q を印刷すると、次のようになります。
そのステートメントを読むと、うまくいくように見えますが、うまくいかず、すべてを返すようです。
これは私が持っているものとまったく同じではありませんが、フォームがどのように見えるかの例です:
更新: コードを変更して、結果の Q ステートメントが代わりに次のようになるようにしました。
または、展開された形式で:
それでも、次のコードはデータベース内のすべてを出力します。
django - Django は、Q と単純なフィルター検索を使用して除外するためのさまざまなクエリを生成します
私のモデルの簡略化されたスキームがあります:
したがって、django は次のステートメントに対して 2 つの異なるクエリを生成します。
1) Qオブジェクトで除外
2) フィールドルックアップで除外
これは正常な動作ですか?さまざまなクエリを生成し、その結果、データベースからさまざまなアイテムを取得できます。たとえば、次のデータベース テーブルがあります。
最初のステートメントは 1-Seagull オブジェクトを返し、2 番目のステートメントは空のクエリセットを返します。正しい動作のようには見えません。
django - モデルとの多対 1 の関係を含む Q クエリで結果が重複する
Car
モデルと、オブジェクトPassenger
への ForeignKey を持つモデルがありますCar
。Car
とPassenger
モデルの両方にフィーname
ルドがあります。
車または乗客の名前に「バナナ」が含まれているすべての車を取得したいので、次のことを試しました。
不思議なことに、Car
'banana' という名前があり、その中に 3 人の乗客がいて ('banana' に一致するかどうかに関係なく) 何かを呼び出すと、 matching の 3 倍が返されますCar
。
質問は次のとおりです。
なんで?
車を一度だけ返却するには?うまくいくと思います
.distinct()
が、もっと良い方法があるかもしれません。
Django 1.5 を使用しています。
python - Q オブジェクトを数値として使用して CharField をフィルタリングする方法
フィルタリングしたい属性が CharField として与えられるデータベースがあります。
属性には、数値が文字列として含まれています。例: 「5.0」
Django Q オブジェクトを使用して、文字列属性の数値に基づいて「より小さい」フィルタリング (<) を実行したいので、たとえば、属性が 3.0 未満の行を取得したいと考えています。
「extra」機能を使用したソリューションについては知っていますが、私の知る限り、「extra」は Q オブジェクトを属性として取りません。
これについて何か考えはありますか?