Aktualisierung der Daten in der Datenbank
Die folgenden Methoden und Funktionen ermöglichen die Aktualisierung vorhandener Daten in der Datenbank .
-
update(each: bool = False, **kwargs) -> int -
update_or_create(**kwargs) -> Model -
bulk_update(objects: List[Model], columns: List[str] = None) -> None -
Das Modell
- Die Methode . update ()
- Die Model . upsert () - Methode
- Model.saveDie lated () - Methode
-
Frage an den Vereinsvertreter
-
QuerysetProxy.update_or_create(**kwargs)Die Methode
aktualisiert
update(each: bool = False, **kwargs) -> int
Mit der Aktualisierung der QuerySet-Ebene werden mehrere Datensätze mit demselben Wert gleichzeitig aktualisiert .
Sie müssen entweder zuerst QuerySet filtern oder das Flag each = True angeben , um die gesamte Tabelle zu aktualisieren .
Wenn Sie dieses Flag oder diesen Filter nicht angeben , wird ein QueryDefintionError ausgelöst .
Gibt die aktualisierte Zahl zurück .
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 | |
!!!Vor der Aktualisierung der Warnung müssen Sie die Abfragesätze filtern , um ein versehentliches Überschreiben zu verhindern .
1 | |
Aktualisierung oder Schöpfung
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 .
Volumen aktualisiert
bulk_update(objects: List["Model"], columns: List[str] = None) -> None
Erlaubt die Aktualisierung mehrerer Beispiele auf einmal .
Alle übergebenen Modelle müssen mit Primärschlüsselspalten gefüllt werden .
Sie können auch die zu aktualisierenden Felder auswählen , indem Sie die Liste der Spalten als Liste der Stringnamen übergeben .
1 2 3 4 5 6 7 8 9 10 11 | |
Die Modellmethode
Jede Modellinstanz verfügt über eine Reihe von Methoden zum Speichern, Aktualisieren oder Laden von sich selbst.
Aktualisierung
Sie können Ihr Modell aktualisieren, indem Sie die Modelleigenschaften (Felder) aktualisieren und die update ()-Methode aufrufen.
Wenn Sie versuchen, ein Modell zu aktualisieren, ohne einen Primärschlüssel festzulegen, wird eine ModelPersistenceError-Ausnahme ausgelöst.
!!!tip Lesen Sie mehr über die update ()-Methode in models-update
Update einfügen
Es ist ein Proxy für die save () oder update (**kwargs) Methode des Modells, die die update ()-Methode aufruft, wenn pk gesetzt ist.
!!!tip Lesen Sie mehr über die upsert ()-Methode in models-uppsert
Bewahren Sie
Die 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.
Aktualisierung oder Schöpfung
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