Ich habe eine Tabelle / Modelle mit dem Namen Employees
und möchte alle Zeilen eines einzelnen Felds als Abfragesatz erhalten.
Ich weiß, dass ich es so machen kann (hoffe, ich mache das sogar richtig):
emp_list = Employees.objects.get(all)
emp_names = emp_list.eng_name
Würde die Datenbank nach allen Feldern abfragen und nur eines verwenden? Gibt es einen besseren (schnelleren) Weg, dies zu tun?
python
django
django-models
zentenk
quelle
quelle
SELECT col
stattSELECT *
?Antworten:
Dadurch wird eine flache Liste aller
eng_name
s erstellt. Wenn Sie mehr als ein Feld pro Zeile möchten, können Sie keine flache Liste erstellen. Dadurch wird eine Liste mit Tupeln erstellt:quelle
Neben
values_list
als Daniel erwähnt Sie auch verwenden könnenonly
(oderdefer
für die entgegengesetzte Wirkung) nur eine queryset von Objekten zu erhalten ihre ID und angegebenen Felder mit:Dadurch wird eine einzelne Abfrage ausgeführt:
quelle
Wir können erforderliche Felder über Werten auswählen.
quelle
Die Antwort von Oskar Persson ist der beste Weg, um damit umzugehen, da es einfacher ist, die Daten an den Kontext zu übergeben und sie normal aus der Vorlage zu behandeln, wenn wir die Objektinstanzen (leicht iterierbar, um Requisiten zu erhalten) anstelle einer einfachen Werteliste erhalten.
Danach können Sie ganz einfach die gewünschte Requisite bekommen:
Oder in der Vorlage:
quelle
Sie können values_list neben dem Filter wie folgt verwenden.
Weitere Details hier
quelle