Innehållsförteckning
Vi har ett stort urval av fälttyper när vi arbetar med formerna i DjangoMen det kommer en tid då vi behöver en validering eller definiera ett nytt beteende, för detta kan vi anpassa våra fält utan problem med hjälp av metoderna för Django.forms.Fördelen med att arbeta med anpassade fält i formulär är att vi inte behöver oroa oss för deras kompatibilitet med flera backends som om vi borde vara oroliga när vi skapar en ny fälttyp i modellen.
Anpassade fält
A anpassat fält i formuläret tillåter oss att generera stöd för typer av datainmatning som inte finns i det stora antalet alternativ som den erbjuder oss DjangoTack vare detta kan vi uppnå mer personliga resultat som hjälper vår applikation att bättre uppnå våra mål.
Hur skapar man dem?För att skapa ett anpassat fält måste detta ärva av klassen Fält ingår i Django.forms, på detta sätt garanterar vi att det fungerar korrekt i formuläret; En annan aspekt som vi redan hade nämnt är att denna typ av fält är lättare att implementera eftersom vi inte behöver ta hänsyn till arbetet med olika backends, det vill säga med flera databaser som det skulle vara i en modell, detta beror på att endast vi kommer att utvärdera strängdata i formuläret när användaren matar in data.
Godkännande
Detta är kanske den grundläggande aspekten i skapandet av nya fält, eftersom vi kan fastställa fälttypen när vi definierar en typ av validering, eftersom valideringen är det som kommer att ge fältets unika karaktär.
Hur inkluderar jag en validering?För att inkludera en validering måste vi tillgripa ren () metod, denna metod accepterar objektet i klassen och värdet i utvärderingen, sedan enligt de standarder som vi har skapat kan denna metod skilja mellan de inmatade uppgif.webpterna och om de överensstämmer med vår validering eller inte, om inte, kommer det att vara kunna göra ett undantag och skicka ett felmeddelande som vi har ställt in.
Låt oss se i följande bild en kod där två nya typer av anpassade fält genereras:
Här ser vi hur vi tillämpar allt vi har pratat om, först gör vi det importera av fält inom Django.forms eftersom det är klassen vi behöver använda, skapar vi en klass som ärver i detta fall från fält.DecimalFält, detta låter oss förstå att vårt nya fält kommer att vara numeriskt.
Sedan definierar vi ett fel som kallas utom räckhållDetta hjälper oss när vi gör ett undantag vid valideringen av data för att kunna visa ett meddelande som vägleder användaren; detta ger oss möjlighet att ha olika typer av meddelanden för olika fel.
ViktigSlutligen skriver vi över ren metod inuti varje ny klass så att vi kan utveckla den nya valideringen använder vi först metoden super (). ren () med detta kallas ren () metod för klassen fält.DecimalFält med detta kan vi validera att de är en korrekt numerisk typ innan vi utvärderar vår egen validering, vilket sparar oss från att behöva lokalisera en validering av typen av inmatade data, här noteras fördelen med ärvning.
Slutligen validerar vi med våra villkor och om de inte är uppfyllda höjer vi felet; så vi har redan skapat ett anpassat fält.
Med detta avslutar vi handledningen med ett extra verktyg som låter oss göra applikationer som ligger närmare våra behov.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