Django - Avancerade blanketter

Innehållsförteckning
Byggformerna kan göras mycket enklare med hjälp av generiska klasser av Django Men vi kommer inte alltid att använda dem eftersom vi ibland behöver utveckla hela logiken från vår sida.
Lyckligtvis inom Django Vi kan också skapa det sätt på vilket vi ska behandla våra formulär och hur vi hanterar deras logik, med detta kommer vi att uppnå mycket mer anpassade applikationer och närmare våra mål.
Ansluta uppgif.webpterna till formuläret
Vi vet att formuläret är ett sätt att ta data från användaren, därför har vi två tillstånd av det, med data och utan dataNär formuläret har data är det när vi ska utföra våra operationer, å andra sidan, när det inte har något, måste vi helt enkelt ignorera det för databehandling.
ÖvningVi kommer att utföra följande övning, från den interaktiva konsolen av Django, vi ska skapa en form och med is_bound () metod Vi kommer att validera om den har tillhörande data, på så sätt kan vi se lite mer hur formuläret beter sig inom ramen, låt oss se resultaten i bilden nedan:

Som vi ser i exemplet är det bara när vi överför värdena till formuläret medan vi använder metoden is_bound att vi får en Riktigt svar.
Validera data
Som vi vet, om vi arbetar på webben kan data som användaren har angett vara den mest effektiva angreppsformen mot vår applikation, eftersom det på grund av okunnighet kan ange alla typer av format som vår applikation inte är redo att acceptera och därför kan sluta med ett dödligt fel, för att undvika detta måste vi alltid se till att data är säkra innan vi behandlar dem för detta kan vi använda följande:
 def my_view (request): if request.method == 'POST': form = MyForm (request.POST, request.FILES) if form.is_valid (): #Om data är giltiga här kan vi fortsätta med vår applikationslogik annars : # Annars presenterar vi bara objektet utan dataformulär = MyForm ()

Som vi ser i exemplet gör vi en instans av klassen MyForm och vi går med i data som kommer i begäran, med POST -metoden och de av typen FILER Om vi ​​tar med en bild eller en fil av en annan typ, beroende på vår modell, måste vad vår form tar med utvärderas för detta använder vi is_valid () metod, med detta ser vi till att om en sträng kommer dit ett nummer ska komma, avvisas informationen och det är inte tillåtet att nå databasen där det kan orsaka ett dödligt fel.
Klassbaserade vyer
Med vad vi har sett i föregående exempel kan vi nu se hur vi kan tillämpa något liknande med hjälp av Klassbaserade vyer och på så sätt använda ramverktygen.
Om vi ​​använder FormView generiskt av Django vi kan uppnå något som liknar följande kod:
 från Django.shortcuts import render, omdirigering från Django.views.generic.edit import FormView klass MyForm (FormView): form_class = MyForm template_name = 'form.html' success_url = ' / success /' def form_valid (self, form): form .save () returnera super (MyView, self) .form_valid (form)

Som vi kan se tillåter den avancerade användningen av formulär oss att göra applikationer mer dynamiska och på ett mer personligt sätt, med vilka vi kan uppnå otroliga resultat med bara några rader kod.Gillade du och hjälpte denna handledning?Du kan belöna författaren genom att trycka på den här knappen för att ge honom en positiv poäng
wave wave wave wave wave