443 Stimmen

Django Model() vs Model.objects.create()

Was ist der Unterschied zwischen dem Ausführen von zwei Befehlen:

foo = FooModel()

und

bar = BarModel.objects.create()

Wird beim zweiten sofort ein BarModel in der Datenbank erstellt, während bei FooModel die save()-Methode explizit aufgerufen werden muss, um es zur Datenbank hinzuzufügen?

2voto

Chukwujiobi Canon Punkte 3714
  • Verwenden Sie Model(), um Modelinstanzen zu erstellen, die Sie sofort verwenden möchten. Sie möchten diese wahrscheinlich nicht in einem Backup-Speicher (Datenbank oder Datei) speichern, wahrscheinlich aufgrund von Latenz oder Ähnlichem. Sie könnten jedoch zwischenspeichern (als statische Variablen [Stackoverflow] zum Beispiel)
  • Verwenden Sie Model.objects.create(), um etwas zu erstellen und sofort irgendwo in einer Datenbank zu speichern.

Erstellt der zweite sofort ein BarModel in der Datenbank, während für das FooModel die Methode save() explizit aufgerufen werden muss, um es zur Datenbank hinzuzufügen?

Genau richtig!

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X