Ich muss eine Raw Sql für mehrere Tabellen durchführen. Dann rendere ich die Ergebnismenge. Für eine Tabelle würde ich tun:
sql = "select * from my_table"
results = my_table.objects.raw(sql)
Für mehrere Tabellen tue ich das:
sql = "select * from my_table, my_other_table where ...."
results = big_model.objects.raw(sql)
Aber muss ich wirklich eine Tabelle/Modell/Klasse big_model erstellen, die alle Felder enthält, die ich möglicherweise benötige? Ich werde niemals Daten in dieser "Tabelle" speichern.
HINZUFÜGEN:
Ich habe eine Tabelle my_users. Ich habe eine Tabelle my_listings. Diese sind in Models.py definiert. Die Tabelle my_listings hat einen Fremdschlüssel zu my_users, der angibt, wer die Liste erstellt hat.
Die SQL lautet
"select user_name, listing_text from my_listings, my_users where my_users.id = my_listings.my_user_id".
Ich möchte diese SQL eine Ergebnismenge zu generieren, die ich verwenden können, um meine Seite in Django zu rendern.
Die Frage ist: Muss ich ein Modell erstellen, das die Felder user_name und listing_text enthält? Oder gibt es einen besseren Weg, der immer noch rohes SQL verwendet (select, from, where)? Natürlich sind meine tatsächlichen Abfragen komplizierter als dieses Beispiel. (Die Modelle, die ich in models.py definiere, werden zu tatsächlichen Tabellen in der Datenbank, daher die Verwendung des Begriffs model/table. Ich weiß nicht, wie ich sie sonst bezeichnen soll, tut mir leid.) Ich verwende raw sql, weil ich festgestellt habe, dass Python-Tabellenreferenzen nur mit einfachen Datenmodellen funktionieren.