Django - Avanserte skjemaer

Innholdsfortegnelse
Byggeskjemaer kan gjøres mye enklere ved å bruke generiske klasser av Django Imidlertid kommer vi ikke alltid til å bruke dem, siden vi noen ganger må utvikle hele logikken fra vår side.
Heldigvis inne Django Vi kan også lage måten vi skal behandle skjemaene våre på og hvordan vi skal håndtere logikken deres, med dette vil vi oppnå mye mer tilpassede applikasjoner og nærmere målene våre.
Koble dataene til skjemaet
Vi vet at skjemaet er en måte å ta data fra brukeren på, derfor har vi to tilstander av det, med data og uten dataNår skjemaet har data, er det når vi skal gjøre operasjonene våre, derimot, når det ikke har noe, må vi bare ignorere det for databehandling.
TreningVi skal utføre følgende øvelse, fra den interaktive konsollen av Django, skal vi lage et skjema og med is_bound () -metoden Vi vil validere om den har tilhørende data. På denne måten kan vi se litt mer hvordan skjemaet oppfører seg innenfor rammen, la oss se resultatene i bildet nedenfor:

Som vi ser i eksemplet, er det bare når vi sender verdiene til skjemaet mens vi bruker metoden is_bound, at vi får en Ekte svar.
Valider data
Som vi vet, hvis vi jobber på nettet, kan dataene som er angitt av brukeren være den mest effektive angrepsformen mot applikasjonen vår, dette er fordi den på grunn av uvitenhet kan angi alle formater som applikasjonen vår ikke er klar til å godta og derfor kan ende med en dødelig feil, for å unngå dette må vi alltid sørge for at dataene er trygge før vi behandler dem for dette, kan vi bruke følgende:
 def my_view (forespørsel): hvis request.method == 'POST': form = MyForm (request.POST, request.FILES) if form.is_valid (): #Hvis dataene er gyldige her kan vi fortsette med applikasjonslogikken vår : # Ellers presenterer vi bare objektet uten dataskjema = MyForm ()

Som vi ser i eksemplet, lager vi en forekomst av klassen MyForm og vi slutter oss til dataene som kommer i be om, etter POST -metoden og de av typen FILER I tilfelle vi tar med et bilde eller en fil av en annen type, avhengig av modellen vår, må hva formen vår bringer evalueres for dette, bruker vi is_valid () metode, med dette sørger vi for at hvis en streng kommer der et tall skal komme, blir informasjonen avvist og det er ikke tillatt å nå databasen der det kan forårsake en dødelig feil.
Klassebaserte visninger
Med det vi har sett i det forrige eksemplet, kan vi nå se hvordan vi kan bruke noe lignende ved å bruke Klassebaserte visninger og på denne måten bruke rammeverktøyene.
Hvis vi bruker FormView generisk av Django vi kan oppnå noe som ligner på følgende kode:
 fra Django.shortcuts import render, omdirigering fra Django.views.generic.edit import FormView klasse MyForm (FormView): form_class = MyForm template_name = 'form.html' success_url = ' / success /' def form_valid (self, form): form .save () return super (MyView, self) .form_valid (form)

Som vi kan se, tillater den avanserte bruken av skjemaer oss å gjøre applikasjoner mer dynamiske og på en mer personlig måte, som vi kan oppnå utrolige resultater med bare noen få kodelinjer.Likte og hjalp du denne opplæringen?Du kan belønne forfatteren ved å trykke på denne knappen for å gi ham et positivt poeng
wave wave wave wave wave