問題タブ [django-select-related]

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 に答える
3661 参照

django - django - フォームの動的選択フィールド

ユーザーが (静的リストから) nfl チームを選択できるようにする picks というモデルがあります。チームを選択すると、そのチームを再度選択することはできなくなるため、選択したチームによって選択の選択肢が減ります。
まだ選択されていないチームを把握するビューで呼び出す関数がありますが、この情報をフォームに渡す方法がわかりません。オンラインで多くのフォームの例を見てきましたが、これを達成する方法を示すものは実際には見つかりませんでした。私が読んだことから、forms.py ファイルからこの関数を呼び出す必要があるように見えますが、関数にはユーザー ID とリーグ ID をパラメーターとして渡す必要があるため、モデルでそれを行うだけです。誰か説明してくれませんか

私は Django と Python の両方で比較的新しいので、ここで行っている明らかな見落としを許してください。

ありがとう!

編集

わかりました、ここで問題について重要ではない情報を提供しすぎたのではないかと思います。ここで質問を単純化してみます。

フォームを作成するビューがあります。フォームには選択ボックスがあります。現在のユーザーと、ビューを起動した URL の変数に基づいて、ビュー内の選択ボックスに入れるオプションを計算します。選択オプションをフォームに渡す方法を知りたいのですが、そうでない場合は、これを達成する必要があります。

現時点で投稿するコードは手元にありませんが、問題とは関係ないと思います。私はそれを十分に一般的にしたことを願っています。

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

django - Djangoクエリ関連のフィールド数

ユーザーがページを作成するアプリがあります。2ページ以上を作成したユーザーの数を返す単純なDBクエリを実行したいと思います。

これは基本的に私がやりたいことですが、もちろんそれは正しい方法ではありません。

私は何が欠けていますか?

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

django - 指定されたフィールドを持つ Django select_related は、複数の 1 対 1 の関係を破ります

複数の OneToOneField リレーションシップで select_related を実行しようとすると、奇妙なエラーが発生します。たとえば、ターゲット フィールドが孫のサブクラスである場合です。何が起こっているのかを理解するのを手伝ってくれる人が欲しいです (または、これが Django のバグであることを確認してください)。

図:

簡単ですよね?ここで、クリーンなデータベースで Django シェルを開きます。

待って、何?そのクエリセットが空なのはなぜですか? 簡単な健全性チェック:

では、select_related 呼び出しが機能しないのはなぜでしょうか? さて、これを見てください:

それで、これは Django のバグですか、それとも私は何かを理解していませんか?

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

google-app-engine - google-appengineとdjango-nonrelを使用して「select_related」を模倣するにはどうすればよいですか?

django nonrelのドキュメントには、「複数のクエリ(JOIN、select_related()など)の結果をマージするためのコードを手動で作成する必要があります」と記載されています。

関連データを手動で追加するスニペットを誰かに教えてもらえますか?@nickjohnsonには、ストレートAppEngineモデルでこれを行う方法を示す優れた投稿がありますが、私はdjango-nonrelを使用しています。

私の特定の用途では、関連するユーザーモデルでUserProfilesを取得しようとしています。これは2つの単純なクエリであり、データを照合する必要があります。

ただし、django-nonrelを使用すると、クエリセット内の結果ごとに新しいクエリが実行されます。「select_related」のような方法で関連アイテムにアクセスするにはどうすればよいですか?

これを試しましたが、期待どおりに機能しないようです。rpc statsを見ると、表示されている各アイテムに対してクエリが実行されているようです。

更新: Ick...私は自分の問題が何であるかを理解しました。

私はdjango管理者のchangelist_viewの効率を改善しようとしていました。上記のselect_relatedロジックは、外部キーが「display_list」にある場合でも、結果セットの各行に対して追加のクエリを生成しているように見えました。しかし、私はそれを別の何かにたどりました。上記のロジックは複数のクエリを生成しません(ただし、ニックジョンソンの方法をより厳密に模倣すると、よりきれいに見えます)。

問題は、ChangeListメソッド内の117行目のdjango.contrib.admin.views.mainに次のコードがあることですresult_list = self.query_set._clone()。したがって、管理者でクエリセットを適切にオーバーライドして関連するものを選択していても、このメソッドは、「関連する選択」用に追加したモデルの属性を保持しないクエリセットのクローンをトリガーしていました。私が始めたときよりもさらに非効率的なページの読み込み。

まだ何をすべきかわからないが、関連するものを選択するコードは問題ない。

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

django - 関連するモデルを使用したDjangoクエリは、1つのモデルのフィールドのみを表示します

関連するモデルが3つあり、3つのモデルすべてからフィールドの組み合わせを取得するためのクエリを作成したいと思います。

debug_toolbarで確認できるSQLステートメントを生成します。SQLステートメントには、関連するモデルのすべてのフィールドが含まれています。

クエリの結果を次のHTMLファイルに送信します。

Ordered_itemモデルに対して定義された式のみを次のように提供します。

したがって、クエリの結果は次のようになります。

これは、def unicode(self) で定義されているフィールドとまったく同じです。

クエリの結果にフィールドを追加するにはどうすればよいですか?SQLのフィールドがクエリの結果に表示されないのはなぜですか?

どんな助けでも大歓迎です。

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

django - Django select_related とフィールド ルックアップ

===モデル===

===見る===

Django ドキュメント

外部キー関係を自動的に「たどる」QuerySet を返し、クエリの実行時に追加の関連オブジェクト データを選択します。

select_related は、単一値の関係 (外部キーおよび 1 対 1) に限定されます。

https://docs.djangoproject.com/en/dev/ref/models/querysets/#select-related

モデルフィールドを取得するために次のクエリセットを作成しました(すべての関係は1対多です)

  • Info Modelから上位モデル、下位モデルへとトラバースしたい
  • テンプレートで select_related() を使用してクラス Aレコードを取得するのに問題はありませんが、私の場合 (クラス B、C、Cfurther、Infocategory、Extra) で select_related を使用してすべてのモデル フィールドを取得することは可能ですか?
  • そうでない場合は、新しいクエリセットを作成する必要がありますか? またはどのselect_related()が機能しますか?

select_relatedフィールドのルックアップに関して少し混乱しています

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

django - Django: select_related() とメモリ使用量

私は API に取り組んでいますが、質問があります。データベースクエリを節約するために の使用法を調べていましたがselect_related()、実際には、より大きく複雑なクエリを犠牲にして、実行されるデータベースクエリの量を減らすのに役立ちます。

私の質問は、使用するselect_related()とメモリ使用量が増えるのですか? いくつかの実験を実行すると、実際にこれが事実であることに気付きましたが、その理由は不思議です。を使用するかどうかに関係なくselect_related()、応答にはまったく同じデータが含まselect_related()れます。

キャッシングのせい?同じモデル インスタンスをキャッシュするために別のデータ オブジェクトが使用されているのではないでしょうか。他に何を考えるべきかわかりません。

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

python - Django 管理者のパフォーマンスの問題

Django 管理インターフェイスでモデルを開こうとすると、これらのクエリが何千も表示され、深刻なパフォーマンスの問題が発生しています。

Django 管理者が select_related() を使用していない理由はありますか?

ここに (私が思うに) モデルの関連部分があります (私は admin で Student モデルのインスタンスを見ています):

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

django - Djangoのタグ付けselect_related

Djangoタグ付けプロジェクトを使用しています。

それは非常に安定したプロジェクトでした。django1.3に取り組んでいます。

しかし、私には問題があります。