Verwendung des Standardwerts von Null im Django -Modell

Verwendung des Standardwerts von Null im Django -Modell
Das Modell ist einer der wichtigsten Teile der datenbankbasierten Django-Anwendung. Das Modell definiert die Struktur der Datenbank. Der Datentyp der Datenbanktabelle und der Weg zum Einfügen von Daten basierend auf verschiedenen Attributen werden im Modell beschrieben. Die Datenvalidierung kann auch durch die Verwendung des Modells gesteuert werden. Jede Tabelle in der Datenbank enthält eine bestimmte Anzahl von Feldern oder Spalten. Das Modell definiert den Typ jedes Feldes der Tabelle. Das Standardattribut wird im Modell verwendet, um einen Standardwert für einen bestimmten Bereich festzulegen, wenn der Benutzer für dieses Feld keine Daten einfügt. Der Standardwert eines Feldes kann sein leer oder einen bestimmten Wert. Der Null Und leer Werte sind nicht gleich. Null wird verwendet, um zu definieren, dass der leere Wert für ein bestimmtes Feld zulässig ist oder nicht. Wenn der Null ist eingestellt auf FALSCH, Dann ist die leere Zeichenfolge im Feld Ganzzahl nicht zulässig, aber die leere Zeichenfolge kann im Feld String-Typ zugewiesen werden. Wenn der Null ist eingestellt auf WAHR, Dann wird der Nullwert im Feld Ganzzahl anstelle einer leeren Zeichenfolge angegeben. BlanK wird hauptsächlich für die Formularvalidierung verwendet und überprüft den Datentyp des Feldes nicht. Die Art der Verwendung Standard Und Null Attribute im Django -Modell haben in diesem Tutorial gezeigt.

Voraussetzungen:

Bevor Sie das Skript dieses Tutorials üben, müssen Sie die folgenden Aufgaben erledigen.

A. Installieren Sie die Django Version 3+ auf Ubuntu 20+ (vorzugsweise)
B. Erstellen Sie ein Django -Projekt
C. Führen Sie den Django -Server aus, um zu überprüfen, ob der Server richtig funktioniert oder nicht.

Richten Sie eine Django -App ein:

A. Führen Sie den folgenden Befehl aus, um eine Django -App mit dem Namen zu erstellen Datenbank.

$ python3 verwalten.PY startApp -Datenbank

B. Führen Sie den folgenden Befehl aus, um den Benutzer zum Zugriff auf die Django -Datenbank zu erstellen. Wenn Sie den Benutzer zuvor abgeschlossen haben, müssen Sie den Befehl nicht ausführen.

$ python3 verwalten.Py erzeugt

C. Fügen Sie den App -Namen in die hinzu Installed_app Teil der Einstellungen.PY -Datei.

Installed_apps = [

"ValidationApp"
]

D. Erstellen Sie einen Ordner mit dem Namen Vorlagen in der Datenbank Ordner und setzen Sie die Vorlage Ort der App in der Vorlagen Teil der Einstellungen.py Datei.

Vorlagen = [

… .
'Dirs': ['/home/fahmida/django_pro/databaseApp/templates'],
… .
,
]

Entwurfsmodell mit Standardattributen für Standard- und Null -Attribute:

Modifiziere den Modelle.py Datei mit dem folgenden Skript zum Erstellen einer Tabelle mit dem Namen Produkte Das enthält vier Felder ohne das ID -Feld. Diese Namen, Preis, Manufacturing_date und Expire_Date. Der Wert der Null Das Attribut wird für alle Felder auf TRUE eingestellt. Der Wert von der Rohling Das Attribut wird auch für alle Felder auf TRUE eingestellt. Dies bedeutet, dass der Benutzer die Felder leer halten kann. Der Standard Der Attributwert wird für den Preis, die Fertigungs- und Ablaufdatum festgelegt.

Modelle.py

# Modulmodul importieren
von django.DB -Importmodelle
# Klasse erstellen, um die Struktur der Lehrertabelle zu definieren
Klassenprodukt (Modelle.Modell):
Name = Modelle.Charfield (max_length = 50, null = true, leer = true)
Preis = Modelle.IntegerField (null = true, default = ", leer = true)
Fertigungs-_Date = Modelle.DateField (null = true, default = '0000-00-00', blank = true)
expire_date = Modelle.DateField (null = true, default = '0000-00-00', blank = true)

Führen Sie die folgenden Migrationsbefehle aus, um die erforderlichen Migrationsdateien und die Datenbanktabelle der SQLite -Datenbank zu erstellen.

$ python3 verwalten.PY Makemigrations DatabaseApp
$ python3 verwalten.py migrieren

Dateninsertion mit Django Administration Dashboard:

Ändern den Inhalt von der admin.py Datei mit dem folgenden Skript, um das Modell in der Datenbank zu registrieren.

Administrator.py
Modifiziere den URLs.py Datei mit dem folgenden Skript zum Definieren des Pfad.

URLs.py

# Admin -Modul importieren
von django.Import Administrator beibringen
# Pfadmodul importieren
von django.URLS -Importweg
# Pfad für Kunden und Administrator definieren
urlpatterns = [
Pfad ('Admin/', Administrator.Grundstück.URLs)
]

Führen Sie nun den Django -Server aus und gehen Sie zum Django Administrative Dashboard mit der folgenden URL.

http: // localhist: 8000/admin

Öffnen Sie das Produkteintragsformular durch Klicken Produkt hinzufügen. Wenn der Benutzer das Formular ohne Einfügen von Daten einreicht, wird die folgende Ausgabe im Browser angezeigt. Hier zeigen zwei Datumsfelder Fehler, da der Standardwert des Datumsfeldes nicht in einem gültigen Format liegt.

Die folgende Ausgabe wird nach dem Hinzufügen der gültigen Datumsdaten angezeigt. Hier das Preis Das Feld ist leer für die Verwendung des Standardattributs.

Dateninsertion mit der Vorlage:

Die Art, Daten in die einzuführen Produkte Die Tabelle mit HTML -Form wurde in diesem Abschnitt gezeigt. Hier werden die Formularelemente basierend auf dem zuvor erstellten Modell generiert.

Formen.py

# Formuliermodul importieren
aus Django -Importformularen
# Kundenmodell importieren
von dbapp.Modelle importieren Produkt
# Definieren Sie die Klasse für das Kundenformular
Klassenproduktform (Formulare.Modelform):
Klassenmeta:
Modell = Produkt
Fields = '__all__'

Erstellen Sie die benannte HTML -Datei Produkt.html in der Vorlagen Ordner der App mit dem folgenden Skript. Die Formulardaten werden übermittelt, wenn der Benutzer auf die Klicken Sie auf die Speichern Taste.

Produkt.html

Kundeneintragsformular



% csrf_token %
form.AS_P

Modifiziere den Ansichten.py Datei mit dem folgenden Skript zum Einfügen von Daten in die Produkte Tabelle nach der Validierung des Formulars. Produkt hinzufügen() Die Funktion wird im Skript definiert, um zu überprüfen, ob das Formular eingereicht wird oder nicht. Wenn das Formular eingereicht wird, werden die Formulardaten gültig oder ungültig werden. Wenn ist gültig() Funktion kehrt zurück WAHR, Dann werden die Daten in die eingefügt Produkte Tabelle und eine Erfolgsnachricht werden im Browser angezeigt.

Ansichten.py

# HTTPResponse -Modul importieren
von django.http.Antwort import httpesponse
# Rendermodul importieren
von django.Verknüpfungen importieren Render
# Produktform importieren
von dbapp.Formulare importieren Produkte
# Funktion definieren, um den Produkteintrag hinzuzufügen
Def AddProduct (Anfrage):
bei Anfrage.Methode == "Post":
Form = productForm (Anfrage.POST)
# Wenn die Formulardaten gültig sind oder nicht
Wenn Form.ist gültig():
versuchen:
# Speichern Sie die Formulardaten in der Datenbank
form.speichern()
# Definieren Sie die Nachricht für den Benutzer
Daten = ['

Das Produkt hinzugefügt.

']
# Die Antwort geben
Rückgabe httPesponse (Daten)
außer:
passieren
anders:
# Definieren Sie das Formularobjekt
Form = productForm ()
# Zeigen Sie das Produkteintragsformular
Rendrendrender zurückgeben (Anfrage, 'Produkt.html ', ' Form ': Form)

Modifiziere den URLs.py Datei mit dem folgenden Skript, um den Pfad zu definieren, um die Ansichtsfunktion aufzurufen.

URLs.py

# Admin -Modul importieren
von django.Import Administrator beibringen
# Pfadmodul importieren
von django.URLS -Importweg
# Ansicht importieren
Aus DBApp -Importansichten
# Pfad für Kunden und Administrator definieren
urlpatterns = [
Pfad (", Ansichten.Produkt hinzufügen),
Pfad ('Admin/', Administrator.Grundstück.URLs)
]

Führen Sie nun den Django -Server aus und öffnen Sie die Basis -URL im Browser.

http: // localhist: 8000/

Das folgende Formular wird angezeigt.

Die folgende ValueError wird angezeigt, wenn der Benutzer das Formular einreicht, ohne Daten in das Formular hinzuzufügen. Hier das Preis Feld ist eine Ganzzahl, die nicht die leere Zeichenfolge sein kann.

Wenn der Benutzer die gültigen Daten wie das folgende Formular eingibt und die drückt Speichern Taste, ein neuer Produktdatensatz wird in die Datenbank eingefügt.

Das folgende Bild wird angezeigt, wenn Sie den neu eingefügten Datensatz aus dem Django -Dashboard öffnen.

Abschluss:

Ein Modell wurde unter Verwendung von NULL und Standardattributen in diesem Tutorial entworfen. Als nächstes haben die Möglichkeiten zum Einfügen von Daten in diese Felder im Back-End und im Front-End gezeigt, dass sie dem Leser helfen können.