Django-select related()とvalues()
1861 ワード
select related()とは?
Django querysetを使用してデータベースからデータをインポートする場合
select related()関数を使用して、参照テーブルのデータを一緒にインポートできます.
Postingモデルの定義は次のとおりです.
ユーザーはForeignKey
ここからユーザー情報をロードしたい場合は、
for文を使わずに直接ポップアップできる方法はvalues()関数を使うことです!また、参照した情報をすぐに取得することもできます!!
それは!
この2つの結果は同じですが、コードをどのように書くかの違いのようです.どちらの方法がより効果的かを考慮して、この2つの方法の中から1つを選択したほうがいい.
Django querysetを使用してデータベースからデータをインポートする場合
select related()関数を使用して、参照テーブルのデータを一緒にインポートできます.
例
Postingモデルの定義は次のとおりです.
ユーザーはForeignKey
postings = Posting.objects.select_related()
上記のコードを使用して、Posting objectsと参照されているuserテーブルの情報を同時にロードできます.ここからユーザー情報をロードしたい場合は、
for posting in postings :
posting.user.(불러오고싶은 db컬럼 이름)
このようにロードできます.postingsは各postingsをリストにするので、直接postings.user.(불러오고싶은 db컬럼 이름)
このフォーマットは使用できません.for文を使わずに直接ポップアップできる方法はvalues()関数を使うことです!また、参照した情報をすぐに取得することもできます!!
それは!
(参照カラム名)(必要なデータ名)
posting = Posting.objects.select_related().values(user__name)
この方法を使用する場合は、for文を使用する必要はありません.これは、非オブジェクト値がリストに直接ロードされるためです.この2つの結果は同じですが、コードをどのように書くかの違いのようです.どちらの方法がより効果的かを考慮して、この2つの方法の中から1つを選択したほうがいい.
Reference
この問題について(Django-select related()とvalues()), 我々は、より多くの情報をここで見つけました https://velog.io/@gogimon/Django-select-related-and-valuesテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol