Satura rādītājs
Kad mēs definējam formu Django Papildus tam mēs sakām, kādu modeli tas izmantos un kādus laukus tam vajadzētu parādīt, mēs varam arī pateikt, kāda uzvedība un kāda veida HTML definēs katru lauku, mēs zinām, ka, piemēram, a CharField Tam vajadzētu parādīt mums teksta tipa ievadi, bet ko darīt, ja vēlamies, lai šī teksta tipa ievade jau būtu iekļauta klasē, lai tā darbotos CSS vai šo elementu aizstāj ar citu elementu.Lai to sasniegtu, mums ir logrīki un mēs varam tos definēt veidlapas klases veidošanas laikā mūsu lietojumprogrammā.
HTML uzvedība
Kā jau minējām, Django parāda veidlapu laukus HTML kods un šim nolūkam, atkarībā no definētā lauka veida, veidojot veidlapu, tiks parādīts HTML elements, ja mēs vēlamies papildu funkcijas mūsu laukos Django piedāvā mums logrīki lai varētu iekļaut šīs papildu funkcijas.
Kā tas tiek sasniegts?Tas tiek paveikts, jo katrs laukam, kas Django ir definēts formā, ir logrīka atribūts un tāpēc tās parādīšanas brīdī mēs varam piešķirt vērtību šai atribūtai un likt tai darboties tā, kā mēs to vēlamies.
Pielāgotie logrīki
Vēl viens aspekts, ko mēs varam ņemt vērā, ir tas, ka, ja logrīki no DjangoTāpat kā lauku tipus, mēs varam tos pielāgot, lai mēs varētu sasniegt konkrētu uzvedību, kas atbilst mūsu lietojumprogrammai.
Piemēram, mēs varam izveidot a logrīka veids kas ir integrēts ar Javascript kalendārs ko esam izstrādājuši vai kas ir īpaši pieprasīts mūsu veidlapai.
MantojumsPriekš pielāgots logrīks iegūt paredzamās pamatfunkcijas, no kurām mantot Django.forms.widgets.Widget tomēr tas nav obligāti, tiklīdz tas ir pārmantots no šīs klases, mēs varam ignorēt nepieciešamās metodes, lai iegūtu mūsu funkcionalitāti.
Praktisks pielietojums
Tālāk apskatīsim piemēru, kurā mēs veidosim veidlapu, izmantojot logrīki Lai definētu dažus lauku aspektus, mēs šo uzdevumu veiksim vietnes interaktīvajā konsolē Python:
Ja gribam definējiet lauku ar pielāgotu logrīku Mēs varam deklarēt klasi ar ievades veidu un pēc tam ievietot to veidlapā, apskatīsim šo kodu, lai mēs saprastu:
class PercentageInput (forms.TextInput): def render (self, name, value, attrs = None): return '% s %%'% super (PercentageInput, self) .render (nosaukums, vērtība, attrs)
Tad formā mēs to saucam:
atlaide = veidlapas.IntegerField (logrīks = PercentageInput ())
Kā redzam, jaunu veidu pievienošana ir diezgan vienkārša logrīki mūsu pieteikumam.Vai jums patika šī apmācība un palīdzējāt tai?Jūs varat apbalvot autoru, nospiežot šo pogu, lai sniegtu viņam pozitīvu punktu