Ich möchte ein ArrayField
in Django verwenden und habe mich gefragt, ob dieses Feld die Einfügereihenfolge beibehält. Wenn ich zum Beispiel die Liste einfüge:
["stackoverflow", "is", "awesome"]
Ich möchte genau die gleiche Reihenfolge haben, wenn ich dies abrufe pkid
.
Ich habe mich in den Django-Dokumenten umgesehen und sehe keine Erwähnung der Beibehaltung der Einfügereihenfolge und daher meine Frage. Es wäre toll, wenn mich jemand dazu mit den Django-Dokumenten verlinken könnte.
PS: Ich gehe davon aus, dass JSONField NICHT die Reihenfolge beibehält und daher ArrayField untersucht.
Die Django- Dokumentation sagt, dass ein ArrayField
is
ein Feld zum Speichern von Listen von Daten
Jetzt behält ein Python- list
Konstruktor die Reihenfolge bei, wie hier erwähnt :
Der Konstruktor erstellt eine Liste, deren Elemente die gleichen und in derselben Reihenfolge wie die Elemente von iterable sind
Wenn Sie sich schließlich die Postgresql- Dokumentation für Arrays ansehen , wird aus den Beispielen klar, dass ein unter index gespeicherter Wert i
beim Abrufen immer am selben Index gefunden wird , obwohl die Reihenfolge nicht explizit erwähnt wird. Es wird wahrscheinlich nicht erwähnt, da Arrays ( in Python Listen genannt ) in jeder Programmiersprache die Reihenfolge der Elemente beibehalten :-)
Wenn Sie also das Feld Ihres Modells a zuweisen list
und es in die db schreiben, können Sie sicher sein, dass Sie beim Abrufen dasselbe erhalten list
, dh mit der beibehaltenen Reihenfolge der Elemente.
Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.
Bei Verstößen wenden Sie sich bitte [email protected] Löschen.
Lass mich ein paar Worte sagen