Django - Aangepaste velden

Inhoudsopgave
We hebben een grote keuze aan veldtypes wanneer we werken met de formulieren in DjangoEr komt echter een tijd dat we een validatie nodig hebben of een nieuw gedrag definiëren, hiervoor kunnen we onze velden zonder problemen aanpassen met behulp van de methoden van Django.forms.
Het voordeel van het werken met aangepaste velden in formulieren is dat we ons geen zorgen hoeven te maken over hun compatibiliteit met: meerdere backends alsof we ons zorgen zouden moeten maken wanneer we een nieuw veldtype in het model maken.
Aangepaste velden
EEN aangepast veld in het formulier stelt ons in staat om ondersteuning te genereren voor soorten gegevensinvoer die niet bestaan ​​in het grote aantal opties dat het ons biedt DjangoHierdoor kunnen we meer gepersonaliseerde resultaten bereiken die onze applicatie helpen om onze doelstellingen beter te bereiken.
Hoe ze te creëren?Om een ​​aangepast veld te maken moet dit: erven van de klas Velden inbegrepen Django.forms, op deze manier garanderen we de correcte werking ervan binnen het formulier; Een ander aspect dat we al hadden genoemd, is dat dit type veld gemakkelijker te implementeren is omdat we geen rekening hoeven te houden met het werk met verschillende backends, dat wil zeggen met meerdere databases zoals in een model, dit komt omdat alleen we zullen gegevens van het stringtype evalueren in het formulier wanneer de gebruiker gegevens invoert.
Geldigmaking
Dit is misschien het fundamentele aspect bij het genereren van nieuwe velden, aangezien we bij het definiëren van een type validatie het type veld kunnen vaststellen, aangezien de validatie het unieke karakter aan dat veld zal geven.
Hoe een validatie opnemen?Om een ​​validatie op te nemen, moeten we onze toevlucht nemen tot: schone () methode, deze methode accepteert het object van de klasse en de waarde in evaluatie, dan kan deze methode volgens de normen die we hebben gemaakt onderscheid maken tussen de ingevoerde gegevens en of ze al dan niet voldoen aan onze validatie, zo niet, dan zal het worden in staat om een ​​uitzondering op te heffen en een foutbericht te verzenden dat we hebben ingesteld.
Laten we in de volgende afbeelding een code zien waarin twee nieuwe typen aangepaste velden worden gegenereerd:

Hier zien we hoe we alles toepassen waar we het over hebben gehad, eerst doen we de importeren van velden binnenin Django.forms aangezien het de klasse is die we moeten gebruiken, maken we een klasse die in dit geval zal erven van velden.DecimaalVeld, dit laat ons begrijpen dat ons nieuwe veld numeriek zal zijn.
Vervolgens definiëren we een fout genaamd buiten bereikDit helpt ons wanneer we een uitzondering maken op het moment dat de gegevens worden gevalideerd om een ​​bericht te kunnen tonen dat de gebruiker begeleidt; dit geeft ons de mogelijkheid om verschillende soorten berichten te hebben voor verschillende fouten.
BelangrijkEindelijk overschrijven we de schone methode binnen elke nieuwe klasse, zodat we de nieuwe validatie kunnen uitwerken, gebruiken we eerst de methode Super schoon () hiermee wordt de methode clean () van de klasse aangeroepen velden.Decimale velden hiermee kunnen we valideren dat ze een correct numeriek type zijn voordat we onze eigen validatie evalueren, waardoor we geen validatie van het type ingevoerde gegevens hoeven te lokaliseren, hier wordt het voordeel van overerven opgemerkt.
Ten slotte valideren we met onze voorwaarden en als ze niet worden vervuld, verhogen we de fout; dus we hebben al een aangepast veld gemaakt.
Hiermee sluiten we de tutorial af met een extra tool waarmee we applicaties kunnen maken die dichter bij onze behoeften liggen.Vond je deze Tutorial leuk en heb je eraan geholpen?Je kunt de auteur belonen door op deze knop te drukken om hem een ​​positief punt te geven
wave wave wave wave wave