問題タブ [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.

0 投票する
2 に答える
600 参照

python - Q オブジェクトと外部キーに関するパズル

私はこのようなモデルを持っています:

各フィルターの形式が {'type':something, 'value':x} であるフィルターのリストを渡す関数があります。この関数は、すべてのフィルターをまとめて ANDing した一連の結果を返す必要があります。

各 Subthing にはブール プロパティ「main」があります。すべてのモノには、main==True のサブシングが 1 つだけあります。

Subthing wheremain==TrueとSubthing を持つすべての Thing を返すフィルターを追加する必要があります。subproperty==filter['value']

Q構築中のオブジェクトの一部としてこれを行うことはできますか? そうでない場合はどうすればいいですか?新しいフィルターの前に取得するクエリセットは非常に大きくなる可能性があるため、結果のループを伴わない方法が必要です。

0 投票する
2 に答える
205 参照

django - カウント リストのカスタマイズ

車の年、メーカー、シリーズ、ボディ スタイル、色に分類されたレコードのリストを生成するために使用しているこのコードがあります。この方法でさらにカスタマイズしたいと思います。

  • その年については、2004 年までを個別に指定したいと思います...残りは、その他、つまり 2009 年、2008 年、2007 年、2006 年、2005 年、2004 年、その他に分類されます。
  • メーカーについては、人気の高い 6 つのメーカーを表示したいと思います...モデルには、メーカーの人気をプライマリ (最高)、セカンダリ、またはサードの値で割り当てるために使用しているフィールドがあります。残りはその他に分類されます。
  • ボディスタイルとカラーは、その他に該当するレコードが3件未満のものを揃えたいです。

私のコードは以下の通りです:

0 投票する
1 に答える
571 参照

django - 注釈付きの Django クエリから非アクティブなコメントをフィルタリング/除外する方法は?

汎用ビューを使用してobject_list一連の記事をすばやく一覧表示しています。各記事にはコメントが添付されています。クエリは、Count()コメントの数に対する注釈を使用し、次にorder_by()その注釈付きの番号を使用します。

コメントはdjango.contrib.commentsフレームワークの一部であり、Generic Relationship を介してモデルに添付されます。Article モデルに明示的な逆ルックアップを追加しました。

問題は、これが「非アクティブ」なコメントをカウントすることです。is_public=Falseまたはを持つものis_removed=True。非アクティブなコメントをカウントから除外するにはどうすればよいですか?

0 投票する
5 に答える
320 参照

django - Django でアカウントベースの分離を強制する方法

単一アカウント モデルの Django アプリがあります。これをマルチアカウントに変換しているため、ほぼすべてのモデルにForeignKey(Account).

Accountそれぞれ(各アカウントが独自のサブドメインにある) が独自のデータのみにアクセスできるようにする最も簡単な方法は何ですか? サブドメインを設定するミドルウェアと、リクエストごとに現在のアカウントがあります。

filter(...., account = request.account)すべてのビューにa を追加することで、これを難しい方法で行うことができます。これは望ましくないため、

  1. filter(...., account = request.account)すべてのクエリ に追加されるため、これはドライではなく、繰り返しが多く、エラーが発生しやすくなります。
  2. より大きなリスクは、欠落しているフィルターがある場合であり、どこでもセキュリティ リスクです。
0 投票する
2 に答える
23724 参照

django - リスト (または別の ManyToManyField) 内のすべてのオブジェクトに対して ManyToManyField を適切にクエリする方法は?

フィールド (またはリスト)のすべての要素が別のフィールドに存在するかどうかを確認する Django クエリを作成する最良の方法について、私はかなり困惑しています。ManyToManyManyToMany

例として、私は複数Personの専門分野を持つことができる複数の を持っています。開始できるもありますがJob、開始するには 1 つ以上Specialtyの が適格である必要があります。

仕事に必要なすべての専門性を持っている場合にのみ、人は仕事を始めることができます。ここでも例として、3 つの専門分野があります。

  • コーディング
  • 歌う
  • ダンシング

そして、私はJob歌と踊りの専門を必要とする を持っています。歌と踊りが得意な人なら始められますが、コーディングと歌が得意な人は始められません。

そのため、人が引き受けることができるすべての仕事を見つける方法が必要です。これが私のやり方でしたが、もっとエレガントなアプローチがあると確信しています:

これは、 を使用すると、その人の専門分野のすべてではなく、いずれかJob.objects.filter(specialty__in=person.specialties.all())の専門分野に一致する仕事が返されるためです。このクエリを使用すると、歌と踊りを必要とするジョブが歌のコーダーに表示されますが、これは望ましい出力ではありません。

この例が複雑すぎないことを願っています。私がこれについて心配している理由は、システム内の専門分野がおそらくもっと多くなり、それらをループすることがこれを達成するための最良の方法とは思えないからです. 誰かこのかゆみにかすり傷をつけてくれませんか!

0 投票する
9 に答える
10547 参照

django - Django QuerySetの最後の要素の高速検索?

Valorというモデルを持っています。バロールにはロボットがいます。私はこのように問い合わせています:

r ロボットの最後のバロールを取得します。Valor.objects.filter(robot=r).count() は約 200000 で、私の PC では最後のアイテムを取得するのに約 4 秒かかります。

どうすれば高速化できますか?間違った方法でクエリを実行していますか?

0 投票する
3 に答える
1143 参照

django - Djangoのlist_detailsビューはクエリセットをメモリに保存します(更新しません)?

次のようなカスタム モデル マネージャーがあります。

そして、これは十分に機能します。ただし、Djangoのgeneric.list_detailビューの使用に問題がobject_detailあり、クエリセットは1回object_listしかロードされていないようで、このため、本来あるべきアイテムをフェッチしていません。最初にロードされます)。utcnow()

これは意図的なものであり、パフォーマンスの向上を意図していると思いますが、ビューで使用できるようになる前に、サイトの他の場所 (ビューにない場所) にビデオが表示されることを意味します(以下のurls.py を参照)。これは 404 につながります...object_detailobject_detail

何か案は ?または、これを回避するために独自のカスタム ビューを作成する必要がありますか?

ありがとう!

urls.py

0 投票する
1 に答える
156 参照

django - Django:関連モデルのカウントの違いでモデルをフィルタリングする

それぞれが 1 つ以上の OrderRow オブジェクトに接続されている多数の Order オブジェクトがあります (Order.order_rows.all() を使用して、親の Orders と逆の関係として表示されます)。

各 OrderRow にはcollection_status属性があり、「collected」、「uncollected」、またはその他の特別な値を指定できます。各注文にはステータス属性があり、有効な値の 1 つは「処理中」です。

次の基準で Order オブジェクトをリストする Order QuerySet を構築しようとして途方に暮れています: 注文ステータスは「処理中」であり、その OrderRows の数はそのcollection_status='collected'OrderRows の合計数よりも少なくなっています。まったく回収されていない、または部分的に回収されているが、完全には回収されていない注文、つまり。

明示的な方法でそれを置くには:

2 行の注文、両方とも「未回収」:
3 行の QS
注文に含まれます。

(「収集されていない」を「収集されていない」他の値に置き換えることができ、基準は同じです。「収集された」対他の collection_status です)

私は Order.objects.filter(status__exact='processing') まで取得しましたが、それを超えて、注釈、 Q() オブジェクトなどでのすべての試みは惨めに失敗しました。

0 投票する
2 に答える
3221 参照

python - 使用するform.fields.queryset?

フォームの ForeignKey フィールドのクエリセットを設定して、個別のクエリセットを取り、それらを に出力することは可能<optgroup>ですか?

ここに私が持っているものがあります:

ビュー.py

私のテンプレート モデルには、デフォルトのテンプレートとユーザー作成のテンプレートがあります。<select>ボックス内でそれらを視覚的に分離したい.

これはできますか?

0 投票する
1 に答える
277 参照

django - djangoクエリセット日時値の減算

次のフィールドのモデルがあります。

そのようなモデルを照会するとき、現在の日付と前の日付の違いを維持する追加の列が必要です。したがって、10行の場合は9つの値になり、最初の値はNoneになります。クエリセットでこれを実現する方法はありますか?または、クエリセットをテンプレートに渡す前に、そのような違いを保持する追加のリストを作成する必要がありますか?お知らせ下さい。