Innehållsförteckning
Att fånga användardata är avgörande för webbapplikationer, denna fångst kan vara fördefinierade data, till exempel värden i välj fält eller radioknappar, eftersom det också kan vara öppen text som inmatningstext eller textområde när vi förväntar oss lite mer omfattande information.Vad alla dessa sätt att fånga data har gemensamt, förutom att de är HTML -element, är att de måste finnas i ett formulär, ett formulär är en behållare där vi placerar element som fångar användardata och sedan kan vi skicka det igenom de HTTP GET -metoder eller POSTA den senare är den mest använda.
Fälten i vår form
De generation av en form i Django Det är mycket likt generationen av en modell, det beror på att det också använder den deklarativa formen som vi tilldelar varje element som ett attribut för formulärklassen.
Kom ihågTrots den ovannämnda likheten har modeller och former vissa viktiga skillnader, en av dem är att de skiljer sig åt i hur de kan hitta och känna igen fält, till exempel kontrollerar en modell om ett attribut har en contrib_to_class () metod, i stället söker formuläret om attributet verkligen är ett fält och utöver det verifierar det om det är en instans av Django.forms.fält.Fält.
Formgenerering
För att generera ett formulär måste vi först skapa klassen som ska innehålla det, vi gör vår formulärklass till en underklass av formulärmodul och vi lägger till den i en ny fil som heter formulär.py i applikationsmappen.
Inuti detta kommer vi att skapa en Metaklass, inom den här klassen kommer vi att ange vilken modell vårt formulär kommer att referera till, sedan enligt vår uppfattning kommer vi att ange formulärklassen och slutligen kommer vi att tömma applikationsmallen. Låt oss se en bildklass i följande bild:
ViktigSom vi ser vi importerar formulärkomponenten Y vi importerar också modellen för vår applikation, på detta sätt kan vi använda det när deklarerar formulärklassen. När detta är gjort går vi till vyn där vi måste ange för motsvarande klass att den ska använda detta formulär. Låt oss se detta på bilden:
Denna uppfattning motsvarar a Klassbaserad vyI teorin behöver vi inte deklarera ett formulär, men vår ansökan kan kräva ett anpassat formulär som visar färre fält eller kanske det visar ytterligare fält.
Det sista steget är att visa formuläret i motsvarande mall, för detta kommer vi att använda form kontext variabel för att kunna skriva ut fälten. I följande kod kan vi se vad vi menar:
FÖRSTORA
Vi ser att vi definierar formen med HTML -kod och inuti spenderade vi formkontext, detta är tillräckligt för att motsvarande fält ska genereras, en annan aspekt som vi måste ta hänsyn till är enctype, om vårt formulär ska ta emot en fil måste vi placera multipart / form-data.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