Einfügen von Daten in eine Datenbank
Mit den folgenden Methoden können Sie Daten in die Datenbank einfügen .
-
-Erzeugung (**kwargs) - > Modell
-
get_or_create(_defaults: Optional[Dict[str, Any]] = None, **kwargs) -> Tuple[Model, bool] -
update_or_create(**kwargs) -> Model -
bulk_create(objects: List[Model]) -> None -
Das Modell * Model.save(c) Die Methode* Model . upsert () - Methode undModel.save\ _ lated () - Methoden
-
Frag den Gruppenleiter*
QuerysetProxy.create(**kwargs)Methoden*QuerysetProxy.get_or_create(_defaults: Optional[Dict[str, Any]] = None, **kwargs)Methoden *QuerysetProxy.update_or_create(**kwargs)Die Methode
erschaffen .
Erstellen (**kwargs) : - > Modell
Erstellen Sie eine Modellinstanz , speichern Sie sie in der Datenbank und geben Sie das aktualisierte Modell zurück (füllen Sie pk aus , wenn es nicht übergeben wurde und ein automatisches Inkrement festgelegt wurde) .
Die zulässigen kwargs sind der Modellfeldname und der korrekte Werttyp .
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
Eine andere Möglichkeit ist die Erstellung und Persistenz von Modellen in Teilen .
1 2 | |
Tip
Erwerben oder schaffen
get_or_create(_defaults: Optional[Dict[str, Any]] = None, **kwargs) -> Tuple[Model, bool]
Eine Kombination von Methoden erstellen und erwerben .
Versuchen Sie , eine Zeile zu erhalten , die die Bedingung erfüllt , und wenn eine NoMatch-Ausnahme ausgelöst wird , wird eine neue Zeile mit den angegebenen kwargs und \ _ defaults erstellt .
Wenn das Wörterbuch \ _ defaults bereitgestellt wird , wird immer der Wert in \ _ defaults gesetzt , einschließlich des Überschreibens des explizit bereitgestellten Wertes IE get_or_create(_defaults: {"title": "I win"}, title="never used") Unabhängig davon , ob Sie Ihren eigenen Wert in kwargs angeben oder nicht , wird immer " Ich habe gewonnen " als Überschrift verwendet .
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | |
!!!Warnung Obwohl es sich um eine äquivalente Zeile in der Datenbank handelt, sind album und album2 im obigen Beispiel 2 verschiedene Python-Objekte!
Beachten Sie , dass Sie , wenn Sie ein neues Objekt erstellen möchten , entweder den pk-Spaltenwert übergeben oder die pk-Spalte auf eine automatische Inkrementierung setzen müssen .
Aktualisieren oder Erstellen
update_or_create(**kwargs) -> Model
Aktualisieren Sie das Modell oder erstellen Sie ein neues Modell , wenn es keine Übereinstimmung in der Datenbank gibt .
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | |
Beachten Sie , dass Sie , wenn Sie ein neues Objekt erstellen möchten , entweder den pk-Spaltenwert übergeben oder die pk-Spalte auf eine automatische Inkrementierung setzen müssen .
Masse erschaffen .
bulk_create(objects: List["Model"]) -> None
Ermöglicht es Ihnen , mehrere Objekte auf einmal zu erstellen .
Eine gültige Liste von Modellobjekten muss übergeben werden.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | |
Die Modell-Methode
Jede Modellinstanz verfügt über eine Reihe von Methoden zum Speichern, Aktualisieren oder Laden von sich selbst.
sparen
Sie können ein neues Modell erstellen, indem Sie die QuerySet. create ()-Methode verwenden oder das Modell als normales pydantisches Modell initialisieren und dann die save ()-Methode aufrufen.
!!!tip Lesen Sie mehr über die save ()-Methode in models-save
Update einfügen
Es ist ein Proxy für die save () oder update (**kwargs) Methode des Modells, die die save ()-Methode aufruft, wenn pk nicht festgelegt ist.
!!!tip Lesen Sie mehr über die upsert ()-Methode in models-uppsert
Bewahren Sie
Eine Methode durchläuft alle Beziehungen des Modells, das die Methode aufruft, und ruft die upsert ()-Methode für jedes nicht gespeicherte Modell auf.
!!!tip Lesen Sie mehr über die save_lated ()-Methode in models-save-lated
Die QuerysetProxy Methode
Wenn Sie direkt auf das zugehörige Feld ManyToMany und ReverseForeignKey zugreifen, wird eine Liste der zugehörigen Modelle zurückgegeben.
Gleichzeitig wird jedoch eine Teilmenge der QuerySet-API verfügbar gemacht, sodass Sie relevante Modelle direkt aus dem übergeordneten Modell filtern, erstellen, auswählen usw. können.
erschaffen.
Genau die gleiche Erstellungsfunktion wie oben, aber Sie können verwandte Objekte vom anderen Ende der Beziehung aus erstellen.
!!!tip Um mehr über QuerysetProxy zu erfahren, besuchen Sie den Abschnitt querysetproxy
Erwerben oder schaffen
Genau wie die oben genannte Funktion get_or_create, aber mit der Sie vom anderen Ende der Beziehung aus ein zugehöriges Objekt abfragen oder erstellen können.
!!!tip Um mehr über QuerysetProxy zu erfahren, besuchen Sie den Abschnitt querysetproxy
Aktualisieren oder Erstellen
Genau wie die oben genannte Funktion update_or_create, jedoch mit der Sie verwandte Objekte vom anderen Ende der Beziehung aktualisieren oder erstellen können.
!!!tip Um mehr über QuerysetProxy zu erfahren, besuchen Sie den Abschnitt querysetproxy