Django

Bruk av standardverdien for NULL i Django Model

Bruk av standardverdien for NULL i Django Model
Model er en av de viktigste delene av det databasebaserte Django-programmet. Modellen definerer strukturen i databasen. Datatypen til 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 for hvert felt i tabellen. Standardattributtet brukes i modellen for å angi en standardverdi for et bestemt område hvis brukeren for det feltet legger inn ingen data. Standardverdien for et felt kan være blank eller en bestemt 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 den null er satt til Falsk, da vil den tomme strengen ikke være tillatt i det heltallfeltet, men den tomme strengen kan tildeles i det strengtypede feltet. Hvis den null er satt til ekte, deretter vil NULL-verdien bli gitt i det heltall-feltet, i stedet for en tom streng. blank brukes hovedsakelig til skjemavalidering og sjekker ikke feltets datatype. Måten å bruke på misligholde og null attributter i Django-modellen har vist i denne veiledningen.

Forutsetninger:

Før du trener på skriptet i 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 å kontrollere at serveren fungerer som den skal eller ikke.

Konfigurer en Django-app:

EN. Kjør følgende kommando for å opprette en Django-app med navnet databaseapp.

$ python3 administrere.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 administrere.py skaperbruker

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

INSTALLED_APPS = [
..
'valideringapp'
]

D. Opprett en mappe med navnet maler inne i databaseapp mappen og still inn malens plasseringen av appen i MALER del av innstillinger.py fil.

MALER = [

.. .
'DIRS': ['/ home / fahmida / django_pro / databaseapp / templates'],
.. .
,
]

Designmodell med standard- og nullattributter:

Endre modeller.py fil med følgende skript for å lage en tabell med navnet Produkter som inneholder fire felt uten id-feltet. Disse navn, pris, produksjonsdato og utløpsdato. Verdien av null attributt er satt til True for alle felt. Verdien av det blanke attributt er satt til True for alle felt også. Dette betyr at brukeren kan holde feltene tomme før de sender inn skjemaet som skal bruke denne modellen. De misligholde attributtverdi er satt for pris, produksjonsdato og utløpsdato.

modeller.py

# Importer modeller-modulen
fra django.db import modeller
# Lag klasse for å definere strukturen til lærertabellen
klasse Produkt (modeller.Modell):
navn = modeller.CharField (max_length = 50, null = True, blank = True)
pris = modeller.IntegerField (null = True, default = ", blank = True)
produksjonsdato = modeller.DateField (null = True, standard = '0000-00-00', blank = True)
expire_date = modeller.DateField (null = True, standard = '0000-00-00', blank = True)

Kjør følgende overføringskommandoer for å lage de nødvendige migreringsfilene og SQLite-databasens databasetabell.

$ python3 administrere.py makemigrations databaseapp
$ python3 administrere.py migrere

Datainnføring ved hjelp av Django Administration Dashboard:

Endre innholdet i administratoren.py filen med følgende skript for å registrere modellen i databasen.

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

nettadresser.py

# Importer administrasjonsmodul
fra django.bidrag importadministrator
# Importer banemodul
fra django.URL-adresse for import
# Definer sti for kunde og admin
urlpatterns = [
sti ('admin /', admin.nettstedet.nettadresser)
]

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 feil fordi standardverdien for datofeltet ikke er i et gyldig format.

Følgende utdata vises etter at gyldige datodata er lagt til. Her, den pris feltet er tomt for bruk av standardattributtet.

Datainnføring ved hjelp av malen:

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

skjemaer.py

# Importer skjemamodul
fra django importskjemaer
# Importer kundemodell
fra dbapp.modeller importerer produkt
# Definer klassen for kundeskjemaet
klasse ProductForm (skjemaer.ModelForm):
klasse Meta:
modell = Produkt
felt = '__all__'

Opprett HTML-filen med navnet produkt.html inne i maler mappen til appen med følgende skript. Skjemadataene sendes inn når brukeren klikker på Lagre knapp.

produkt.html

Kundens inngangsskjema



% csrf_token%
skjema.som_p

Endre utsikt.py filen med følgende skript for å sette inn data i Produkter tabellen etter validering av skjemaet. Legg til produkt () funksjon er definert i skriptet for å sjekke at skjemaet er sendt inn eller ikke, og hvis skjemaet sendes inn, vil det sjekke skjemadataene er gyldige eller ugyldige. Hvis er gyldig() funksjonen returnerer ekte, deretter blir dataene satt inn i Produkter tabellen, og en suksessmelding vises i nettleseren.

utsikt.py

# Importer HttpResponse-modul
fra django.http.svar import HttpResponse
# Importer gjengivelsesmodul
fra django.snarveier import gjengis
# Importer ProductForm
fra dbapp.skjemaer importerer ProductForm
# Definer funksjon for å legge til produktoppføring
def AddProduct (forespørsel):
hvis forespørsel.metode == "POST":
form = ProductForm (forespørsel.POST)
# Hvis skjemadataene er gyldige eller ikke
hvis skjema.er gyldig():
prøve:
# Lagre skjemadataene i databasen
skjema.lagre()
# Definer meldingen for brukeren
data = ['

Produktet er lagt til.

']
# Returner svaret
returner HttpResponse (data)
unntatt:
sende
ellers:
# Definer skjemaobjektet
form = ProductForm ()
# Vis produktoppføringsskjemaet
return render (forespørsel, 'produkt.html ', ' form ': form)

Endre nettadresser.py fil med følgende skript for å definere banen for å ringe visningsfunksjonen.

nettadresser.py

# Importer administrasjonsmodul
fra django.bidrag importadministrator
# Importer banemodul
fra django.URL-adresse for import
# Importer visning
fra dbapp-importvisninger
# Definer sti for kunde og admin
urlpatterns = [
sti (", visninger.AddProduct),
sti ('admin /', admin.nettstedet.nettadresser)
]

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

http: // lokalhistorisk: 8000 /

Følgende skjema vises.

Følgende ValueError vises hvis brukeren sender inn skjemaet uten å legge til data i skjemaet. Her, den pris feltet er et helt tall som ikke kan være den tomme strengen.

Hvis brukeren skriver inn gyldige data som skjemaet nedenfor og trykker på Lagre knappen, vil en ny produktregistrering 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 i disse feltene i back-end og front-end vist her for å hjelpe leseren å vite bruken av standard- og null-attributter i Django-databasen.

Mus Kartlegg museknappene på en annen måte for annen programvare med X-Mouse Button Control
Kartlegg museknappene på en annen måte for annen programvare med X-Mouse Button Control
Kanskje du trenger et verktøy som kan gjøre at musens kontroll endres med hvert program du bruker. Hvis dette er tilfelle, kan du prøve et program som...
Mus Microsoft Sculpt Touch Wireless Mouse Review
Microsoft Sculpt Touch Wireless Mouse Review
Jeg har nylig lest om Microsoft Sculpt Touch trådløs mus og bestemte meg for å kjøpe den. Etter å ha brukt den en stund bestemte jeg meg for å dele mi...
Mus AppyMouse Pekeplate og musepeker på skjermen for Windows-nettbrett
AppyMouse Pekeplate og musepeker på skjermen for Windows-nettbrett
Nettbrettbrukere savner ofte musepekeren, spesielt når de bruker vanlige bærbare datamaskiner. Berøringsskjermen Smarttelefoner og nettbrett har mange...