Съдържание
Имаме голям избор от типове полета когато работим с формите в ДжангоИдва обаче момент, в който се нуждаем от валидиране или дефиниране на ново поведение, за това можем да персонализираме полетата си без проблеми, използвайки методите на Django.forms.Предимството на работата с персонализирани полета във формуляри е, че не трябва да се притесняваме за тяхната съвместимост с множество бекенди сякаш трябва да сме загрижени, когато създаваме нов тип поле в модела.
Персонализирани полета
А персонализирано поле във формата ни позволява да генерираме поддръжка за типове въвеждане на данни, които не съществуват в големия брой опции, които ни предлага ДжангоБлагодарение на това можем да постигнем по -персонализирани резултати, които помагат на нашето приложение да постигне по -добре нашите цели.
Как да ги създадете?За да създадете персонализирано поле, това трябва наследявам на класа Полета включен в Django.forms, по този начин гарантираме правилното му функциониране във формата; Друг аспект, който вече споменахме, е, че този тип поле е по -лесно да се приложи, тъй като не е нужно да вземаме предвид работата с различни бекенди, тоест с множество бази данни, както би било в модел, това е така, защото само ще оценим данните от типа низ във формата, когато потребителят въвежда данни.
Валидиране
Това може би е фундаменталният аспект при генерирането на нови полета, тъй като при определяне на тип валидиране можем да установим типа на полето, тъй като валидирането е това, което ще даде уникалния характер на споменатото поле.
Как да включите валидиране?За да включим валидиране, трябва да прибегнем метод clean (), този метод приема обекта на класа и стойността в оценката, тогава според стандартите, които сме създали, този метод е в състояние да различи между въведените данни и дали те отговарят на нашата валидация, ако не, ще бъде в състояние да повдигне изключение и да изпрати съобщение за грешка, което сме задали.
Нека видим на следващото изображение код, в който се генерират два нови типа персонализирани полета:
Тук виждаме как прилагаме всичко, за което говорихме, първо правим това внос на полета в рамките на Django.forms тъй като това е класът, който трябва да използваме, тогава създаваме клас, който ще наследи в този случай от fields.DecimalField, това ни позволява да разберем, че новото ни поле ще бъде числово.
След това дефинираме грешка, наречена извън обхватТова ни помага, когато правим изключение по време на валидирането на данните, за да можем да покажем съобщение, което ръководи потребителя; това ни дава възможност да имаме различни видове съобщения за различни грешки.
ВажноНакрая презаписваме чист метод във всеки нов клас, за да можем да разработим новото валидиране, първо използваме метода super (). clean () с това извиква метода clean () на класа field.DecimalFields с това можем да потвърдим, че те са правилен числов тип, преди да оценим собствената си валидация, което ни спасява от необходимостта да локализираме валидиране на типа въведени данни, тук се отбелязва предимството на наследяването.
Накрая потвърждаваме с нашите условия и ако те не са изпълнени, повишаваме грешката; така че вече сме създали персонализирано поле.
С това завършваме урока с допълнителен инструмент, който ни позволява да правим приложения, които са по -близо до нашите нужди.Хареса ли ви и помогнахте на този урок?Можете да възнаградите автора, като натиснете този бутон, за да му дадете положителна точка