İçindekiler
Bir form tanımladığımızda Django Bunun dışında hangi modeli alacağını ve göstermesi gereken alanları da söyleriz, hangi davranışı ve ne tür bir davranış olduğunu da söyleyebiliriz. HTML her alanı tanımlayacak, biliyoruz ki örneğin bir Karakter Alanı Bize bir metin türü girişi göstermelidir, ancak bu metin türü girişinin zaten bir sınıfla gelmesini istiyorsak, CSS veya o eleman başka bir elemanla değiştirilir.Bunu başarmak için elimizdeki widget'lar ve bunları uygulamamızda form sınıfını yaparken tanımlayabiliriz.
HTML davranışı
Bahsettiğimiz gibi, Django form alanlarını görüntüler HTML Kodu ve bunun için tanımlanan alan tipine bağlı olarak, alanlarımızda ek işlevler istiyorsak, form oluşturulurken görüntülenecek olan HTML öğesi olacaktır. Django bize sunuyor widget'lar bu ekstra işlevleri dahil edebilmek için.
Nasıl elde edilir?Bu başarılır çünkü her Django'da bir formda tanımlanan alan bir widget niteliğine sahiptir ve bu nedenle, somutlaştırma anında, söz konusu özniteliğe değer verebilir ve istediğimiz şekilde çalışmasını sağlayabiliriz.
Özel Widget'lar
Dikkate alabileceğimiz bir diğer husus ise, eğer widget'lar nın-nin DjangoAlan türlerinde olduğu gibi, uygulamamıza uyan belirli davranışlar elde edebilmemiz için bunları özelleştirebiliriz.
Örneğin bir oluşturabiliriz widget türü ile entegre olan bir JavaScript takvimi geliştirdiğimiz veya formumuz için özel olarak talep edilen.
Mirasiçin özel widget devralması gereken beklenen temel işlevleri al Django.forms.widgets.Widget ancak bu zorunlu değildir, bu sınıftan miras alındığında, işlevselliğimizi elde etmek için gerekli yöntemleri geçersiz kılabiliriz.
Pratik uygulama
kullanarak bir form oluşturacağımız bir örneği aşağıda görelim. widget'lar Alanların bazı yönlerini tanımlamak için, bu alıştırmayı interaktif konsolda yapacağız. piton:
Eğer istersek özel bir widget ile bir alan tanımlayın Bir girdi tipi ile bir sınıf tanımlayabiliriz ve bunu formun içine yerleştirebiliriz, anlayabilmemiz için şu kodu görelim:
sınıf PercentageInput (forms.TextInput): tanım oluşturma (kendi, ad, değer, özler = Yok): '% s %%'% super (PercentageInput, öz) .render (ad, değer, öznitelikler) döndür
Sonra formda diyoruz:
indirim = formlar.IntegerField (widget = PercentageInput ())
Gördüğümüz gibi, yeni türler eklemek oldukça kolaydır. widget'lar uygulamamıza.Bu Eğitimi beğendiniz ve yardım ettiniz mi?Yazara olumlu puan vermek için bu düğmeye basarak yazarı ödüllendirebilirsiniz.