Django - Avancerede formularer

Indholdsfortegnelse
Bygningsformularer kan gøres meget lettere ved at bruge generiske klasser af Django men vi kommer ikke altid til at bruge dem, da vi nogle gange har brug for at udvikle hele logikken fra vores side.
Heldigvis indenfor Django Vi kan også skabe den måde, vi skal behandle vores formularer på, og hvordan vi håndterer deres logik, med dette opnår vi meget mere personlige applikationer og tættere på vores mål.
Tilslutning af data til formularen
Vi ved, at formularen er en måde at tage data fra brugeren på, derfor har vi to tilstande af det, med data og uden dataNår formularen har data, er det når vi skal udføre vores operationer, på den anden side, når den ikke har noget, skal vi simpelthen ignorere dem til databehandling.
Dyrke motionVi skal udføre følgende øvelse fra den interaktive konsol af Django, vi skal oprette en form og med is_bound () metode Vi vil validere, om den har tilhørende data, på denne måde kan vi se lidt mere, hvordan formularen opfører sig inden for rammerne, lad os se resultaterne i billedet herunder:

Som vi ser i eksemplet, er det kun, når vi overfører værdierne til formularen, mens vi bruger metoden is_bound, at vi får en Sandt svar.
Valider data
Som vi ved, hvis vi arbejder på internettet, kan de data, som brugeren har indtastet, være den mest effektive angrebsform mod vores applikation, fordi det på grund af uvidenhed kan indtaste enhver form for formater, som vores applikation ikke er klar til at acceptere og derfor kan ende med en fatal fejl, for at undgå dette skal vi altid sikre os, at dataene er sikre, før vi behandler dem til dette, kan vi bruge følgende:
 def my_view (anmodning): hvis request.method == 'POST': form = MyForm (request.POST, request.FILES) hvis form.is_valid (): #Hvis dataene er gyldige her, kan vi fortsætte med vores applikationslogik ellers : # Ellers præsenterer vi kun objektet uden dataform = MyForm ()

Som vi ser i eksemplet, laver vi en instans af klassen MyForm og vi slutter os til de data, der kommer i anmodning, ved POST -metoden og dem af typen FILER I tilfælde af at vi bringer et billede eller en fil af en anden type, afhængigt af vores model, skal det, vores formular bringer, evalueres til dette, bruger vi is_valid () metode, med dette sørger vi for, at hvis en streng kommer, hvor et tal skal komme, afvises oplysningerne, og det er ikke tilladt at nå databasen, hvor det kan forårsage en fatal fejl.
Klassebaserede visninger
Med det, vi har set i det foregående eksempel, kan vi nu se, hvordan vi kan anvende noget lignende ved hjælp af Klassebaserede visninger og på denne måde bruge rammeværktøjerne.
Hvis vi bruger FormView generisk af Django vi kan opnå noget, der ligner 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 () returnerer super (MyView, self) .form_valid (form)

Som vi kan se, giver den avancerede brug af formularer os mulighed for at gøre applikationer mere dynamiske og på en mere personlig måde, som vi kan opnå utrolige resultater med blot et par linjer kode.Kan du lide og hjælpe denne vejledning?Du kan belønne forfatteren ved at trykke på denne knap for at give ham et positivt punkt
wave wave wave wave wave