Django - MultiWidget

Inhoudsopgave
Spreken over widgets, moeten we weten dat deze een brug vormen tussen de HTML code en de velden van Django; Deze hebben veel te maken met de manier waarop we het gedrag van HTML in onze formulieren en dus in onze applicatie gaan controleren.
Zodanig is de controle, dat we enkele programmeertechnieken kunnen toepassen waarin we onszelf zullen toestaan ​​om gegevens op te slaan en te verwerken van verschillende widgets en geef ze aan Django alsof het gegevens uit één enkele bron zijn.
Gegevens splitsen tussen meerdere widgets
De werking hiervan kan worden bereikt met behulp van de render () methode van de widget, dan kunnen we een veld hebben en bij het verwerken ervan verdelen we het in verschillende HTML-invoer, elk met een stukje van de waarde die we moeten opslaan.
VoorbeeldEen voorbeeld kan het veld zijn Datum Tijd, dit kan worden onderverdeeld in een veld dat alleen de datum vastlegt en een ander dat de tijd vastlegt, maar wanneer het wordt opgeslagen in Database We zouden ons bij hen moeten voegen en op deze manier hebben we een compleet veld, maar in het gebruikersgedeelte is het verdeeld.
MultiWidget
Zoals het voorbeeld dat we eerder aangaven, is het iets heel vervelends, omdat we zouden moeten zorgen voor het schrijven van te veel routines en methoden die ons helpen bij validatie, in Django Hier is al over nagedacht en wij hebben nutsbedrijven die een groot deel van dit werk voor ons doen.
MultiValueFieldAan de kant van de velden hebben we MultiValueField dat helpt ons bij de validatie van de gegevens, het opschonen ervan en de vergelijking met elk van de velden waaruit de verbinding bestaat; Het enige dat we hier hoeven te doen, is aangeven welke velden de compositie zullen maken en hoe we ze moeten comprimeren zodat ze bruikbaar zijn binnen de code Python.
Deze methode is gemaakt om te werken in combinatie met: MultiWidget die verantwoordelijk is voor het vertalen naar HTML van alles wat we eerder hebben gedefinieerd in de formulierklasse.
Laten we hieronder een afbeelding zien van een voorbeeldcode waarin we deze concepten hebben geïmplementeerd:

VERGROTEN

Hier zien we hoe we eerst een klasse hebben gedefinieerd die erft van MultiWidget, daarin geven we aan dat we twee velden gaan hebben Invoertekst medewerkers en vestig een decomprimeer () methode dat is degene die de waarden voor presentatie scheidt.
In de volgende klasse stellen we wat meer elementen in, eerst vertellen we dat het moet erven van MultiValueField dan geven we dat aan widget je moet gebruiken en natuurlijk gaan we je vertellen om de widget te gebruiken die hierboven al is gedefinieerd.
dan in zijn __init__ methode We geven de soorten velden aan die nodig zijn en tot slot definiëren we de methode samendrukken (), we zien dat het behalve het zelf ook een parameter krijgt data_list, hierin gaan we de lijst met gegevens doorgeven die moeten worden gecombineerd en retourneren als een tuple, we profiteren ook van het valideren ervan om te voorkomen dat we onjuiste gegevens ontvangen die onze applicatie kunnen bedreigen.
Hiermee voltooien we deze tutorial en zien we hoe we een redelijk geavanceerde tool hebben waarmee we onze formulieren in onze applicatie in slechts eenvoudige stappen iets meer kunnen aanpassen.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

U zal helpen de ontwikkeling van de site, het delen van de pagina met je vrienden

wave wave wave wave wave