Erstellen Sie Objekte in Django

Salman Mehmood 15 Februar 2024
Erstellen Sie Objekte in Django

Dieser Artikel erklärt, was ein Modell ist und wie man Objekte mit der Methode create() erstellt. Wir werden sehen, wie die Methode save() in Django funktioniert.

Erstellen Sie Objekte mit der create()-Methode in Django

Ein Modell in Django ist eine Klasse, die eine einzelne Tabelle in einer Datenbank darstellt. Wir könnten jeden Datentyp in unserer Anwendung durch sein Modell darstellen lassen.

Jedes Modell wird dann einer einzelnen Tabelle in einer Datenbank zugeordnet.

Wenn wir beispielsweise vier Modelle, Artikel, Benutzer, Autoren und Bücher haben, hätten wir vier Tabellen in einer Datenbank. Jede Tabelle wird von einem einzelnen Modell abgebildet.

Sehen wir uns an, wie Objekte eines Modells in der Datenbank erstellt werden.

Wir werden die Python-Shell verwenden, um neue Objekte zu erstellen. Wir müssen den Administrator verwenden, um sicherzustellen, dass wir uns im Stammverzeichnis unseres Django-Projekts befinden.

ls

Ausgang:

db.sqlite3	manage.py	products	trydjango

Jetzt führen wir einen weiteren Befehl aus. Wenn wir also diesen Befehl ausführen, funktionieren alle Dinge des Django-Projekts in einem Python-Interpreter.

Wir werden einen normalen Python-Interpreter sehen, wenn wir Enter drücken, aber das liegt nicht daran, dass wir den folgenden Befehl ausführen können.

python manage.py shell

Wir haben das Modell Product aus der Datei models.py importiert. Wir können unser Product-Modell in der aktuellen Shell verwenden, wenn wir Enter drücken.

from products.models import Product

Wir haben einen eingebauten Django-Befehl, um alle Objekte aus dem definierten Modell abzurufen.

Product.objects.all()

Jetzt können wir sehen, dass es nur einen Artikel gibt, und das liegt daran, dass wir nur einen gespeichert haben.

<QuerySet[<Product: Product object (1)>]>

Wenn wir mehr Objekte sehen möchten, müssen wir nur mit dem folgenden Befehl weitere Objekte erstellen.

Product.objects.create()

Angenommen, unser Produkt-Modell hat vier Felder. Diese vier Felder müssen die Methode create() übergeben, um ein neues Objekt zu erstellen.

Django-Objekt erstellen – Beispiel 1

Lassen Sie uns ein neues Objekt erstellen, indem Sie den folgenden Befehl schreiben.

Product.objects.create(
    title="New product",
    description="Another one",
    price=1222,
    summary="The best product",
)

Nachdem wir diesen Befehl geschrieben haben, wird beim Drücken der Enter ein neues Objekt erstellt.

<Product: Product object (2)>

Wenn wir also jetzt versuchen, alle Objekte abzurufen, sehen wir ein weiteres neu erstelltes Element.

Product.objects.all()

Jetzt können wir das zweite Element der Abfrageliste sehen.

<QuerySet[<Product: Product object (1)>,<Product: Product object (2)>]>

Wenn wir zum Admin-Panel gehen, sehen wir dort neue Objekte.

Nun schauen wir uns die Methode save() an. Angenommen, wir haben den folgenden Code und müssen alle Felder des definierten Modells speichern.

Wir müssen alle Felder in unserer Modellklasse übergeben und ein Objekt erstellen, um dies mit der Methode save() zu speichern.

Django-Objekt erstellen – Beispiel 2

Wir haben die product_id im obigen Code definiert, sodass wir jetzt über seine ID auf das Produkt zugreifen können. In der product_id setzen wir den primary_key gleich True.

Die save()-Methode funktioniert für zwei Bedingungen, dh wenn die angegebene product_id bereits in der Datenbank existiert, wird das Objekt mit anderen Feldwerten aktualisiert.

Wenn die Methode save() das Attribut primary_key nicht auf True in product_id findet, oder wenn die angegebene ID nicht in der Datenbank existiert, wird sie einen Fehler erzeugen. Mit Product.objects.create() können wir nur neue Objekte einfügen.

Salman Mehmood avatar Salman Mehmood avatar

Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.

LinkedIn

Verwandter Artikel - Django Model