Bruk av standardverdien av null i Django -modellen

Bruk av standardverdien av null i Django -modellen
Modell er en av de viktige delene av den databasebaserte Django-applikasjonen. Modellen definerer strukturen til databasen. Datatypen for databasetabellen og måten å sette inn data basert på forskjellige attributter er beskrevet i modellen. Datavalidering kan kontrolleres ved å bruke modellen også. Hver tabell i databasen inneholder et bestemt antall felt eller kolonner. Modellen definerer typen av hvert felt i tabellen. Standardattributtet brukes i modellen for å angi en standardverdi for et bestemt område hvis brukeren for det feltet setter inn ingen data. Standardverdien på et felt kan være blank eller noen spesifikk verdi. De null og blank Verdiene er ikke de samme. null brukes til å definere at den tomme verdien er tillatt eller ikke for et bestemt felt. Hvis null er satt til Falsk, Da vil ikke den tomme strengen være tillatt i det heltall-typede feltet, men den tomme strengen kan tilordnes i strengtypet felt. Hvis null er satt til ekte, da vil nullverdien bli gitt i heltall-typfeltet i stedet for en tom streng. blanK brukes hovedsakelig til skjemavalidering og sjekker ikke feltets datatype. Måten å bruke misligholde og null Attributter i Django -modellen har vist i denne opplæringen.

Forutsetninger:

Før du øver skriptet til denne opplæringen, må du fullføre følgende oppgaver.

EN. Installer Django versjon 3+ på Ubuntu 20+ (helst)
B. Lag et Django -prosjekt
C. Kjør Django -serveren for å sjekke at serveren fungerer riktig eller ikke.

Sett opp en Django -app:

EN. Kjør følgende kommando for å opprette en Django -app som heter DatabaseApp.

$ Python3 Administrer.PY StartApp DatabaseApp

B. Kjør følgende kommando for å opprette brukeren for tilgang til Django -databasen. Hvis du har fullført brukeren før, trenger du ikke kjøre kommandoen.

$ Python3 Administrer.Py CreateSuperuser

C. Legg til appnavnet i Installert_app En del av innstillingene.py -fil.

Installert_apps = [
..
'ValidationApp'
]

D. Opprett en mappe som heter Maler inne i DatabaseApp mappe og angi malens Plasseringen av appen i Maler del av Innstillinger.py fil.

Maler = [

.. .
'Dirs': ['/home/fahmida/django_pro/databaseapp/maler'],
.. .
,
]

Designmodell med standard- og nullattributter:

Endre modeller.py fil med følgende skript for å lage en tabell som heter Produkter som vil inneholde fire felt uten ID -feltet. Disse Navn, pris, produksjon_dato og utløp_dato. Verdien av null Attributt er satt til sant for alle felt. Verdien av blanket Attributt er satt til True for alle felt også. Dette betyr at brukeren kan holde feltene tomme før han sender inn skjemaet som vil bruke denne modellen. De misligholde Attributtverdien er satt for pris, produksjon_date og utløp_dato.

modeller.py

# Importer modeller modul
Fra Django.DB importmodeller
# Lag klasse for å definere strukturen til lærertabellen
Klasseprodukt (modeller.Modell):
Navn = modeller.Charfield (max_length = 50, null = true, blank = true)
Pris = modeller.Integerfield (null = true, standard = ", blank = true)
produksjon_date = modeller.Datefield (null = true, standard = '0000-00-00', blank = true)
utløp_date = modeller.Datefield (null = true, standard = '0000-00-00', blank = true)

Kjør følgende migrasjonskommandoer for å opprette de nødvendige migrasjonsfilene og SQLite -databasens databasetabell.

$ Python3 Administrer.PY Makemigrations DatabaseApp
$ Python3 Administrer.py migrerer

Datainnsetting ved bruk av Django Administration Dashboard:

Endre innholdet i Administratoren.py fil med følgende skript for å registrere modellen i databasen.

admin.py
Endre URLS.py fil med følgende skript for å definere banen for å åpne Django Administrative Dashboard.

URLS.py

# Importer administratormodul
Fra Django.bidra importadministrator
# Importer banemodul
Fra Django.URLS importerer bane
# Definer bane for kunde og admin
urlpatterns = [
bane ('admin/', admin.nettstedet.URL)
]

Kjør nå Django -serveren og gå til Django Administrative Dashboard ved å bruke følgende URL.

http: // localhist: 8000/admin

Åpne skjemaet for produktinnføring ved å klikke Legg til produkt. Hvis brukeren sender inn skjemaet uten å sette inn data, vises følgende utdata i nettleseren. Her viser to datofelt.

Følgende utdata vises etter å ha lagt til de gyldige datadataene. Her, The pris Feltet er tomt for å bruke standardattributtet.

Datainnsetting ved bruk av malen:

Måten å sette inn data i Produkter Tabell ved bruk av HTML -skjema er vist i denne delen. Her vil formelementene bli generert basert på modellen som er opprettet tidligere.

skjemaer.py

# Importer skjemamodul
fra Django importformer
# Importer kundemodell
fra DBAPP.Modeller importerer produkt
# Definer klassen for kundeformen
Klasseproduktform (skjemaer.Modelform):
Klassemeta:
modell = produkt
felt = '__all__'

Opprett HTML -filen som heter produkt.html inne i Maler Mappen til appen med følgende skript. Skjemaets data vil bli sendt inn når brukeren vil klikke på Lagre knapp.

produkt.html

Skjema for kundeinnføring



% csrf_token %
Form.as_p

Endre utsikt.py fil med følgende skript for å sette inn data i Produkter Tabell etter å ha validert skjemaet. AddProduct () Funksjonen er definert i skriptet for å sjekke skjemaet er sendt inn eller ikke, og hvis skjemaet sendes inn, vil det sjekke skjemaets data er gyldige eller ugyldige. Hvis er gyldig() Funksjonen returnerer ekte, da blir dataene satt inn i Produkter Tabell, og en suksessmelding vises i nettleseren.

utsikt.py

# Importer httpResponse -modul
Fra Django.http.Responsimport HttpResponse
# Import Render Module
Fra Django.snarveier import gjengivelse
# Importer produktform
fra DBAPP.Former import produktform
# Definer funksjon for å legge til produktoppføring
def addProduct (forespørsel):
Hvis forespørsel.Metode == "POST":
skjema = produktform (forespørsel.POST)
# Hvis skjemaene er gyldige eller ikke
Hvis form.er gyldig():
prøve:
# Lagre skjemadata i databasen
form.lagre()
# Definer meldingen for brukeren
data = ['

Produktet lagt til.

']
# Returner svaret
Returner HttpResponse (data)
unntatt:
sende
ellers:
# Definer formobjektet
form = produktform ()
# Vis produktinnføringsskjemaet
Retur Render (forespørsel, 'Produkt.html ', ' form ': form)

Endre URLS.py fil med følgende skript for å definere banen for å kalle visningsfunksjonen.

URLS.py

# Importer administratormodul
Fra Django.bidra importadministrator
# Importer banemodul
Fra Django.URLS importerer bane
# Importer visning
Fra DBAPP -importvisninger
# Definer bane for kunde og admin
urlpatterns = [
bane (", visninger.AddProduct),
bane ('admin/', admin.nettstedet.URL)
]

Kjør nå Django -serveren og åpne basen URL i nettleseren.

http: // localhist: 8000/

Følgende skjema vises.

Følgende ValueError vil vises hvis brukeren sender inn skjemaet uten å legge til noen data i skjemaet. Her, The pris felt er et heltall som ikke kan være den tomme strengen.

Hvis brukeren legger inn gyldige data som skjemaet nedenfor og trykker på Lagre Knapp, en ny produktpost vil bli satt inn i databasen.

Følgende bilde vises hvis du åpner den nylig innsatte posten fra Django Dashboard.

Konklusjon:

En modell er designet ved å bruke null- og standardattributter i denne opplæringen. Deretter har måtene å sette inn data på disse feltene i back-end og front-end her vist for å hjelpe leseren til å kjenne bruken av standard og nullattributter i Django-databasen.