Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Mendapatkan Data Bandar, Negeri dan Negara dengan Cekap daripada Jadual Berkaitan di Django?

Bagaimanakah Saya Boleh Mendapatkan Data Bandar, Negeri dan Negara dengan Cekap daripada Jadual Berkaitan di Django?

Barbara Streisand
Lepaskan: 2024-10-29 09:28:02
asal
775 orang telah melayarinya

How Can I Efficiently Retrieve City, State, and Country Data from Related Tables in Django?

Penyertaan Dalaman Berbilang Jadual dalam Django

Untuk memaparkan bandar, negeri dan negara penerbitan, yang disimpan dalam jadual berasingan, anda boleh melakukan gabungan dalaman dalam Django menggunakan kaedah select_related().

<code class="python">pubs = publication.objects.select_related('country', 'country_state', 'city')</code>
Salin selepas log masuk

Pertanyaan ini akan menghasilkan pernyataan SQL yang serupa dengan:

<code class="sql">SELECT "publication"."id", "publication"."title", ..., "country"."country_name", ...
FROM "publication"
INNER JOIN "country" ON ( "publication"."country_id" = "country"."id" )
INNER JOIN "countrystate" ON ( "publication"."countrystate_id" = "countrystate"."id" )
INNER JOIN "city" ON ( "publication"."city_id" = "city"."id" )</code>
Salin selepas log masuk

Kursor pub yang dikembalikan mengandungi objek dengan nilai jadual berkaitan telah dipraisi, membolehkan anda mengaksesnya tanpa hits pangkalan data tambahan:

<code class="html">{% for p in pubs %}
    {{ p.city.city_name}}  # p.city has been populated in the initial query
    # ...
{% endfor %}</code>
Salin selepas log masuk

Pendekatan ini cekap dan menghalang pertanyaan yang tidak perlu untuk mendapatkan semula data berkaitan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendapatkan Data Bandar, Negeri dan Negara dengan Cekap daripada Jadual Berkaitan di Django?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan