Sie möchten Stadt, Bundesland und Land einer Publikation anzeigen Informationen in einer HTML-Vorlage. Diese Details werden jedoch in separaten Datenbanktabellen gespeichert.
Die relevanten Modelle in Ihrer models.py-Datei sind:
Sie möchten eine äquivalente SQL-Abfrage in Ihrer Django-Ansicht mit der folgenden Struktur schreiben:
<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>
Um einen Inner Join in Django durchzuführen, verwenden Sie die Methode select_lated() für den Veröffentlichungsabfragesatz:
<code class="python">pubs = publication.objects.select_related('country', 'country_state', 'city')</code>
Dies führt zu einer einzelnen Abfrage, die verknüpft die Veröffentlichungstabelle mit den zugehörigen Länder-, Bundesland- und Stadttabellen. Die resultierenden Objekte haben über Objektattribute Zugriff auf die verbundenen Daten, sodass keine zusätzlichen Datenbankabfragen erforderlich sind.
Das obige ist der detaillierte Inhalt vonWie können Sie verwandte Tabellen in Django-Modellen für Veröffentlichungsinformationen effizient verknüpfen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!