Django - Brugerdefinerede felter

Indholdsfortegnelse
Vi har et stort udvalg af felttyper når vi arbejder med formularerne i DjangoDer kommer imidlertid et tidspunkt, hvor vi har brug for en validering eller definerer en ny adfærd, til dette kan vi tilpasse vores felter uden problemer ved hjælp af metoderne til Django.former.
Fordelen ved at arbejde med tilpassede felter i formularer er, at vi ikke skal bekymre os om deres kompatibilitet med flere backends som om vi skulle være bekymrede, når vi opretter en ny felttype i modellen.
Brugerdefinerede felter
EN brugerdefineret felt i formularen giver os mulighed for at generere understøttelse af typer dataindtastning, der ikke findes i det store antal muligheder, den tilbyder os DjangoTakket være dette kan vi opnå mere personlige resultater, der hjælper vores applikation til bedre at nå vores mål.
Hvordan skaber man dem?For at oprette et tilpasset felt skal dette arve af klassen Felter inkluderet i Django.former, på denne måde garanterer vi dens korrekte funktion inden for formen; Et andet aspekt, som vi allerede havde nævnt, er, at denne type felt er lettere at implementere, da vi ikke behøver at tage hensyn til arbejdet med forskellige backends, det vil sige med flere databaser, som det ville være i en model, det skyldes, at kun vi vil evaluere strengtypedata i formularen, når brugeren indtaster data.
Validering
Dette er måske det grundlæggende aspekt ved generering af nye felter, da vi ved at definere en type validering kan fastslå felttypen, da valideringen er det, der vil give det pågældende felt den unikke karakter.
Hvordan inkluderes en validering?For at inkludere en validering skal vi ty til ren () metode, accepterer denne metode klassens objekt og værdien i evalueringen, så i henhold til de standarder, vi har oprettet, er denne metode i stand til at skelne mellem de indtastede data, og om de er i overensstemmelse med vores validering, hvis ikke, vil det være i stand til at hæve en undtagelse og sende en fejlmeddelelse, som vi har angivet.
Lad os se i det følgende billede en kode, hvor to nye typer tilpassede felter genereres:

Her ser vi, hvordan vi anvender alt, hvad vi har talt om, først gør vi det importere af felter inden for Django.former da det er den klasse, vi skal bruge, så opretter vi en klasse, som vil arve i dette tilfælde fra felter.DecimalFelt, dette lader os forstå, at vores nye felt vil være numerisk.
Derefter definerer vi en fejl kaldet uden for rækkeviddeDette hjælper os, når vi rejser en undtagelse på tidspunktet for validering af dataene for at kunne vise en besked, der guider brugeren; dette giver os mulighed for at have forskellige typer beskeder for forskellige fejl.
VigtigEndelig overskriver vi ren metode inde i hver ny klasse, så vi kan uddybe den nye validering, bruger vi først metoden super (). ren () med dette kaldes til ren () metoden i klassen felter. decimalfelter med dette kan vi validere, at de er en korrekt numerisk type, inden vi evaluerer vores egen validering, hvilket sparer os for at skulle lokalisere en validering af typen af ​​indtastede data, her noteres fordelen ved at arve.
Endelig validerer vi med vores betingelser, og hvis de ikke er opfyldt, rejser vi fejlen; så vi har allerede oprettet et tilpasset felt.
Med dette afslutter vi selvstudiet med et ekstra værktøj, der giver os mulighed for at lave applikationer, der er tættere på vores behov.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