問題タブ [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 投票する
1 に答える
6711 参照

django - DJANGO:関連するモデルの属性に基づいてオブジェクトを並べ替える方法は?

UserモデルとUserProfileモデルがあります。Userモデルでは、last_nameのアルファベット順にクエリを並べ替えたいと思います。次に、User_profilesの「title」属性(マネージャー、エグゼクティブ、会計士など)で注文します。

モデル:

見る:

「タイトル」はユーザーモデルの属性ではありませんが、UserProfileモデルによってユーザーに関連付けられています。UserProfile.titleのアルファベット順に並べ替えるにはどうすればよいですか?

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

django - select_related() と filter() + Q()

パラメータによっていくつかの B インスタンスにリンクされた A インスタンスを取得する方法。私はそれをしようとします:

次のエラーで機能しません: «キーワード 'object_id' をフィールドに解決できません。» リンクされた B によって A を取得できるものは何ですか?

ありがとう!

[PS] これで動作しますが、本来の動作とは言えません:

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

django - Django で userprofile を使用してユーザーを取得する最も効率的な方法

Django では、推奨されるセットアップで、UserProfile インスタンスが OneToOneField によってその User インスタンスにリンクされます。

ビュー内でユーザーとプロファイルの両方を取得する最も効率的な方法は何ですか? select_related() 内部結合クエリを実行して、1 つのデータベース ヒットで両方のオブジェクトを取得できますか? それとも、常に 2 つの別々の呼び出しになりますか? おそらく、Django の認証ミドルウェアは、ビューが呼び出される前であってもユーザー インスタンスを取得します ... 誰か知っていますか?

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

django - Django: クラス ベース ビューの select_related を修正

Stackoverflow の皆さん、こんにちは。

Django の select_related クエリで奇妙な問題が発生しています。多数の都市の地理情報を一覧表示するdjango-cities appをインストールしました。私のプロジェクト モデルでは、都市要素への外部キーを作成して、models.pyに場所を保存しました。

考えられる都市の数が多いため、プロジェクト オブジェクトの作成時に関連する都市フィールドを選択するクラス ベースのビューでクエリを作成しました。

しかし、ProjectCreate クラスを要求すると、Django は依然としてデータベースから無数の外部キーを引き出します。ロガーは、次のリクエストを無制限に表示しています。

... DEBUG (0.000) SELECT "cities_region"."id", "cities_region"."name", "cities_region"."slug", "cities_region"."name_std", "cities_region"."code", "cities_region "."country_id" FROM "cities_region" WHERE "cities_region"."id" = 3861887 ; args=(3861887,) DEBUG (0.000) SELECT "cities_country"."id", "cities_country"."name", "cities_country"."slug", "cities_country"."code", "cities_country"."population" , "都市の国"."大陸", "都市の国"."tld" FROM "都市の国" WHERE "都市の国"."id" = 3865483 ;

ProjectCreate クラスを実行するときに、選択関連のメソッドを強制するにはどうすればよいですか?

あなたの助けと提案をありがとう!

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

django - Django管理者変更リスト最適化クエリ:select*の代わりにfield1、field2を選択します

かなりの数の外部キー(それぞれ平均10フィールド)を持つ大きな水平テーブル(30フィールド)があります。Django管理者にテーブルを表示している間、私は最適化に関連する選択を使用し、複数のクエリを回避します。私が探しているのは、list_displayエントリのみが取得され、30フィールド+(外部キーX 10)フィールドすべてが取得されないようにすることです。現在、テーブルのselect*とすべての結合フィールドのselect*が実行されます。基本的に、Django管理者レベルで「値」を取得する方法。ありがとう。

編集:以下の例:

私の問題は、これを表示するために生成されたクエリを見ると、X(x1からx30)でselect *を実行し、select_relatedを使用して、すべてのフィールドが必要ではない場合でも、y1からy10およびz1からz10を抽出することです。

このテーブルはCRMとして頻繁に使用されており、生成されるクエリが遅いため、現在は目を見張るものがあります。表示に使用されておらず、まだ照会されているブロブと巨大なvarcharもあります。

ありがとう。

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

django - 複数の外部キーのdjango select_related

複数の外部キーを持つモデルで select_related はどのように機能しますか? それは最初のものを選ぶだけですか?

クラス モデル: fkey1、fkey2、fkey3...

ドキュメントは、少なくともメソッドが指定されている場所では、これについて何も述べていません。

注: 混乱するのは私だけかもしれません。select_related は単なるパフォーマンス ブースターだと思います (それはわかります) が、それが別のものであるという間違った考えを持っていました。

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

django - Django の selected_related を使用しても、追加のデータベース ヒットが発生する

toを持つUserProfileモデルがあります。to を持つモデルもあります。OneToOneFieldauth.models.UserImageForeignKeyUser

私の見解の 1 つで、次Imageのような s の束が得られます。

その後、上記で取得した各画像に対して、次のことを行います。

これが別のデータベース ヒットを引き起こさないことを期待していましたが、そうです。私は何を間違っていますか?

実行される SQL で.selecte_related()a を確認できるため、 が実際にその仕事をしていると思うことに注意してください。LEFT OUTER JOIN

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

django - select_related/prefetch_related でこの Django コードを最適化する適切な方法は何ですか?

2 つのモデルと ForeignKey を使用した単純な状況があります。

テンプレートで行うときはいつでも{{some_image.iotd_date}}、データベースにヒットします。

その情報をプリフェッチするにはどうすればよいですか? .select_related('iotd')( )を試しましrelated_nameたが、うまくいきませんでした。

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

python - Django select_related: 関連するテーブル データをテンプレートに表示する方法

使用時にテンプレートに関連テーブルのフィールドを表示する際に問題が発生していますselect_related()

これが私のモデルです:

これが私の見解です:

Ordersと の関連フィールドをProducts、特にCustomersテンプレートで表すにはどうすればよいですか。たとえば、同じ関連レコードからとを表示Orders.invoice_numberしたい。Products.nameCustomer.customer_name

例えば: