Innholdsfortegnelse
Vi har et stort utvalg av felttyper når vi jobber med skjemaene i DjangoImidlertid kommer det en tid da vi trenger en validering eller definere en ny atferd, for dette kan vi tilpasse feltene våre uten problemer ved å bruke metodene for Django.forms.Fordelen med å jobbe med egendefinerte felt i skjemaer er at vi ikke trenger å bekymre oss for kompatibiliteten med dem flere backends som om vi burde være bekymret når vi oppretter en ny felttype i modellen.
Egendefinerte felt
EN tilpasset felt i skjemaet lar oss generere støtte for typer datainføring som ikke finnes i det store antallet alternativer det tilbyr oss DjangoTakket være dette kan vi oppnå mer tilpassede resultater som hjelper applikasjonen vår med å nå våre mål bedre.
Hvordan lage dem?For å opprette et tilpasset felt må dette arve av klassen Enger inkludert i Django.former, på denne måten garanterer vi at den fungerer korrekt i skjemaet; Et annet aspekt som vi allerede hadde nevnt er at denne typen felt er lettere å implementere siden vi ikke trenger å ta hensyn til arbeidet med forskjellige backends, det vil si med flere databaser som det ville være i en modell, dette er fordi bare vi vil evaluere strengtypedata i skjemaet når brukeren legger inn data.
Validering
Dette er kanskje det grunnleggende aspektet ved generering av nye felt, siden når vi definerer en type validering kan vi fastslå felttypen, siden validering er det som vil gi feltet unike karakter.
Hvordan inkludere en validering?For å inkludere en validering må vi ty til ren () metode, aksepterer denne metoden objektet for klassen og verdien i evalueringen, så i henhold til standardene vi har opprettet, er denne metoden i stand til å skille mellom dataene som er lagt inn og om de er i samsvar med validering eller ikke, hvis ikke, vil det være kunne gjøre et unntak og sende en feilmelding som vi har angitt.
La oss se i det følgende bildet en kode der to nye typer tilpassede felt genereres:
Her ser vi hvordan vi bruker alt vi har snakket om, først gjør vi det import av Enger innenfor Django.former siden det er klassen vi trenger å bruke, så lager vi en klasse som vil arve i dette tilfellet fra felter. desimalfelt, dette lar oss forstå at vårt nye felt vil være numerisk.
Deretter definerer vi en feil kalt ute av rekkeviddeDette hjelper oss når vi tar et unntak på tidspunktet for validering av dataene for å kunne vise en melding som veileder brukeren; Dette gir oss muligheten til å ha forskjellige typer meldinger for forskjellige feil.
ViktigTil slutt overskriver vi ren metode inne i hver ny klasse, slik at vi kan utdype den nye valideringen, bruker vi først metoden super (). ren () med dette kalles clean () metoden i klassen desimalfelt med dette kan vi validere at de er en korrekt numerisk type før vi evaluerer vår egen validering, noe som sparer oss for å måtte finne en validering av typen data som er lagt inn, her er fordelen med å arve notert.
Til slutt validerer vi med våre betingelser, og hvis de ikke er oppfylt, løfter vi feilen; så vi har allerede opprettet et tilpasset felt.
Med dette fullfører vi opplæringen med et ekstra verktøy som lar oss lage applikasjoner som er nærmere våre behov.Likte og hjalp du denne opplæringen?Du kan belønne forfatteren ved å trykke på denne knappen for å gi ham et positivt poeng