2016-10-06 7 views

Antwort

1

Well get_or_create ist

Eine bequeme Methode zum sucht ein Objekt mit dem angegebenen kwargs bis (kann leer sein, wenn Ihr Modell Standardeinstellung für alle Felder hat), eine bei Bedarf zu schaffen.

Also zumindest verletzen Sie die DRY-Prinzipal. Darüber hinaus suchen Sie nach allen Feldern im Modell, nicht nur nach dem Primärschlüssel oder dem eindeutigen Feld. Sie versuchen, ein Objekt zu finden, in dem alle Felder übereinstimmen. Die Wahrscheinlichkeit ist also sehr hoch, dass Sie falsche Ergebnisse erhalten und Ihre create-Anweisung fehlschlägt. Deshalb hat get_or_create den defaults Parameter

+0

Ruft es 'UPSERT' sql Befehl auf, wenn verfügbar (z. B. bei der Verwendung von Postgresql)? https://wiki.postgresql.org/wiki/UPSERT –

+0

Nein, es ist nicht AFAIK – e4c5

Verwandte Themen