ホームページ >データベース >mysql チュートリアル >パブリケーション情報のために Django モデルの関連テーブルを効率的に結合するにはどうすればよいですか?
出版物の市、州、国を表示したいと考えています。 HTML テンプレート内の情報。ただし、これらの詳細は別のデータベース テーブルに保存されます。
models.py ファイル内の関連モデルは次のとおりです。
次の構造を使用して、Django ビューで同等の SQL クエリを作成したいとします:
<code class="sql">SELECT p.user_id, p.title, c.cuntry_id, c.country_name, s.state_id, s.state_name, y.city_id, y.city_name FROM publication AS p INNER JOIN country AS c ON c.id = p.country_id INNER JOIN countrystate AS s ON s.id = p.countrystate_id INNER JOIN city AS y ON y.id = p.city_id</code>
Django で内部結合を実行するには、パブリケーション クエリセットで select_relative() メソッドを使用します。
<code class="python">pubs = publication.objects.select_related('country', 'country_state', 'city')</code>
これにより、結合する単一のクエリが生成されます。関連する国、州、都市のテーブルを含む出版物テーブル。結果として得られるオブジェクトは、オブジェクト属性を介して結合されたデータにアクセスできるため、追加のデータベース クエリの必要がなくなります。
以上がパブリケーション情報のために Django モデルの関連テーブルを効率的に結合するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。