Zastosowanie wartości domyślnej null w modelu django

Zastosowanie wartości domyślnej null w modelu django
Model jest jedną ze znaczących części aplikacji Django opartej na bazie danych. Model definiuje strukturę bazy danych. Typ danych tabeli bazy danych i sposób wstawienia danych na podstawie różnych atrybutów opisano w modelu. Sprawdzanie poprawności danych można kontrolować również za pomocą modelu. Każda tabela w bazie danych zawiera określoną liczbę pól lub kolumn. Model definiuje rodzaj każdego pola tabeli. Domyślny atrybut jest używany w modelu do ustawienia wartości domyślnej dla określonego obszaru, jeśli użytkownik tego pola wstawię brak danych. Domyślną wartością pola może być pusty lub dowolna konkretna wartość. zero I pusty Wartości nie są takie same. zero służy do zdefiniowania, że ​​pusta wartość jest dozwolona lub nie dla określonego pola. Jeśli zero jest ustawione na FAŁSZ, Wtedy pusty ciąg nie będzie dozwolony w polu typu liczb całkowitych, ale pusty ciąg można przypisać w polu typu string-ty. Jeśli zero jest ustawione na PRAWDA, wtedy wartość zerowa zostanie podana w polu typu liczb całkowitych zamiast pustego ciągu. BlanK jest używany głównie do sprawdzania poprawności formularza i nie sprawdza typu danych pola. Sposób używania domyślny I zero Atrybuty w modelu Django pokazano w tym samouczku.

Wymagania wstępne:

Przed ćwiczeniem scenariusza tego samouczka musisz wykonać następujące zadania.

A. Zainstaluj wersję Django 3+ na Ubuntu 20+ (najlepiej)
B. Utwórz projekt Django
C. Uruchom serwer Django, aby sprawdzić, czy serwer działa poprawnie lub nie.

Skonfiguruj aplikację Django:

A. Uruchom następujące polecenie, aby utworzyć aplikację Django o nazwie DataBaseApp.

$ Python3 Zarządzaj.PY StartApp DatabaseApp

B. Uruchom następujące polecenie, aby utworzyć użytkownika w celu uzyskania dostępu do bazy danych Django. Jeśli wcześniej ukończyłeś użytkownika, nie musisz uruchamiać polecenia.

$ Python3 Zarządzaj.PY CreateSuperuser

C. Dodaj nazwę aplikacji w Zainstalowany_app część ustawień.plik py.

Instalowane_apps = [

„ValidationApp”
]

D. Utwórz folder o nazwie szablony w środku DataBaseApp folder i ustaw szablon Lokalizacja aplikacji w Szablony część Ustawienia.py plik.

Szablony = [

… .
„Dirs”: ['/home/fahmida/django_pro/batabaseApp/Templates']],
… .
,
]

Model projektowy z domyślnymi i zerowymi atrybutami:

Zmodyfikuj modele.py Plik z następującym skryptem, aby utworzyć tabelę o nazwie produkty które będą zawierać cztery pola bez pola identyfikatora. Te Nazwy, cena, produkcja_date i wygasa_date. Wartość zero atrybut jest ustawiony na true dla wszystkich pól. Wartość puste atrybut jest ustawiony na true dla wszystkich pól. Oznacza to, że użytkownik może utrzymać pola puste przed przesłaniem formularza, który użyje tego modelu. domyślny Wartość atrybutów jest ustalana dla ceny, produkcji_date i expire_date.

modele.py

# Importuj moduł modeli
z Django.Modele importu DB
# Utwórz klasę, aby zdefiniować strukturę tabeli nauczycieli
produkt klasowy (modele.Model):
name = modele.Charfield (max_length = 50, null = true, blank = true)
cena = modele.Integerfield (null = true, default = ", blank = true)
Manufacturing_date = Modele.Datefield (null = true, domyślnie = '0000-00-00', blank = true)
expire_date = modele.Datefield (null = true, domyślnie = '0000-00-00', blank = true)

Uruchom następujące polecenia migracyjne, aby utworzyć niezbędne pliki migracyjne i tabelę bazy danych bazy danych SQLITE.

$ Python3 Zarządzaj.PY Makemigrations DatabaseApp
$ Python3 Zarządzaj.Py migruj

Wstawienie danych za pomocą deski rozdzielczej administracji Django:

Zmodyfikuj zawartość Administrator.py Plik z następującym skryptem, aby zarejestrować model w bazie danych.

Admin.py
Zmodyfikuj URL.py Plik z następującym skryptem, aby zdefiniować ścieżkę do otwarcia deski rozdzielczej administracyjnej Django.

URL.py

# Importuj moduł administratora
z Django.Administrator importu
# Moduł ścieżki importu
z Django.URL ścieżki importu
# Zdefiniuj ścieżkę dla klienta i administratora
urlpatterns = [
ścieżka („admin/”, administrator.strona.URL)
]

Teraz uruchom serwer Django i przejdź do pulpitu administracyjnego Django za pomocą następującego adresu URL.

http: // localhist: 8000/admin

Otwórz formularz wpisu produktu, klikając Dodaj produkt. Jeśli użytkownik przesła formularz bez wstawienia danych, w przeglądarce pojawi się następujące dane wyjściowe. Tutaj dwa pola daty pokazują błędy, ponieważ wartość domyślna pola daty nie jest w prawidłowym formacie.

Następujące dane wyjściowe pojawią się po dodaniu prawidłowych danych daty. Tutaj cena pole jest puste do używania domyślnego atrybutu.

Wstawienie danych za pomocą szablonu:

Sposób wstawienia danych do produkty Tabela przy użyciu formularza HTML została pokazana w tym rozdziale. Tutaj elementy formularzy zostaną wygenerowane na podstawie modelu, który został utworzony wcześniej.

form.py

# Importuj moduł formularzy
z formularzy importu Django
# Importuj model klienta
Z DBApp.modele importuj produkt
# Zdefiniuj klasę dla formularza klienta
Forma produktów klasowych (formularze.Modelform):
Meta klasy:
model = produkt
pola = „__all__”

Utwórz nazwany plik HTML produkt.html w środku szablony Folder aplikacji z następującym skryptem. Dane formularza zostaną przesłane, gdy użytkownik kliknie Ratować przycisk.

produkt.html

Formularz wejścia klienta



% csrf_token %
formularz.as_p

Zmodyfikuj wyświetlenia.py plik z następującym skryptem, aby wstawić dane do produkty Tabela po weryfikacji formularza. AddProduct () Funkcja jest zdefiniowana w skrypcie, aby sprawdzić, czy formularz jest przesłany lub nie, a jeśli formularz zostanie przesłany, sprawdzi, że dane z formularza są prawidłowe lub nieprawidłowe. Jeśli jest ważna() Funkcja powraca PRAWDA, wtedy dane zostaną włożone do produkty tabela, a komunikat o powodzeniach zostanie wyświetlony w przeglądarce.

wyświetlenia.py

# Importuj moduł httpresponse
z Django.http.Odpowiedź Import Httpresponse
# Importuj moduł renderowania
z Django.KRÓTKI IMPORTOWANE RENDER
# Importuj formę produktu
Z DBApp.Formularze Importuj Forma produktu
# Zdefiniuj funkcję, aby dodać wpis produktu
def addProduct (żądanie):
na żądanie.Method == „Post”:
formularz = forma produktu (żądanie.POST)
# Jeśli dane z formularza są prawidłowe, czy nie
Jeśli forma.jest ważna():
próbować:
# Zapisz dane formularza w bazie danych
formularz.ratować()
# Zdefiniuj wiadomość dla użytkownika
data = ['

Dodano produkt.

']
# Zwróć odpowiedź
zwróć HttPesponse (dane)
z wyjątkiem:
przechodzić
w przeciwnym razie:
# Zdefiniuj obiekt formularza
Form = produktForm ()
# Pokaż formularz wejścia do produktu
renderowanie zwrotu (żądanie, „produkt.html ', „form”: form)

Zmodyfikuj URL.py Plik z następującym skryptem, aby zdefiniować ścieżkę do wywołania funkcji widoku.

URL.py

# Importuj moduł administratora
z Django.Administrator importu
# Moduł ścieżki importu
z Django.URL ścieżki importu
# Widok importu
z wyświetleń importu DBAPP
# Zdefiniuj ścieżkę dla klienta i administratora
urlpatterns = [
ścieżka (", widoki.AddProduct),
ścieżka („admin/”, administrator.strona.URL)
]

Teraz uruchom serwer Django i otwórz podstawowy adres URL w przeglądarce.

http: // localhist: 8000/

Pojawi się następujący formularz.

Następujące ValueerRor pojawi się, jeśli użytkownik prześle formularz bez dodawania danych w formularzu. Tutaj cena pole to liczba całkowita, która nie może być pustym ciągiem.

Jeśli użytkownik wprowadzi prawidłowe dane, takie jak poniższy formularz i naciska Ratować przycisk, nowy rekord produktu zostanie włożony do bazy danych.

Pojawi się następujący obraz, jeśli otworzysz nowo włożony rekord z deski rozdzielczej Django.

Wniosek:

Model został zaprojektowany za pomocą NULL i domyślnych atrybutów w tym samouczku. Następnie sposoby wstawienia danych w tych polach w zapleczu i front-end pokazano tutaj, aby pomóc czytelnikowi poznać zastosowania atrybutów domyślnych i zerowych w bazie danych Django.