İçindekiler
Geniş bir seçimimiz var alan türleri formlarla çalıştığımızda DjangoAncak, bir doğrulamaya ihtiyaç duyduğumuz veya yeni bir davranış tanımlamamız gereken bir zaman gelir, bunun için alanlarımızı aşağıdaki yöntemleri kullanarak sorunsuz bir şekilde özelleştirebiliriz. Django.forms.Formlarda özel alanlarla çalışmanın avantajı, bunların uyumluluğu konusunda endişelenmemize gerek olmamasıdır. çoklu arka uçlar sanki modelde yeni bir alan türü oluşturduğumuzda endişelenmemiz gerekiyormuş gibi.
Özel Alanlar
A özel alan formda bize sunduğu çok sayıda seçenekte mevcut olmayan veri girişi türleri için destek oluşturmamıza olanak tanır. DjangoBu sayede uygulamamızın hedeflerimize daha iyi ulaşmasına yardımcı olan daha kişiselleştirilmiş sonuçlar elde edebiliyoruz.
Nasıl oluşturulur?Özel bir alan oluşturmak için bu miras sınıfın Alanlar dahil Django.forms, bu şekilde form içinde doğru işleyişini garanti ediyoruz; Daha önce bahsettiğimiz bir diğer husus ise, bir modelde olduğu gibi farklı arka uçlarla, yani birden çok veritabanıyla çalışmayı hesaba katmamız gerekmediği için bu tür bir alanın uygulanması daha kolaydır, bunun nedeni sadece string tipi verileri değerlendireceğiz kullanıcı veri girdiğinde formda.
doğrulama
Bu, belki de yeni alanların oluşturulmasındaki temel özelliktir, çünkü bir doğrulama türü tanımlarken alan türünü belirleyebiliriz, çünkü doğrulama, söz konusu alana benzersiz karakteri verecek olan şeydir.
Doğrulama nasıl dahil edilir?Bir doğrulama eklemek için başvurmalıyız temiz () yöntemi, bu yöntem sınıfın nesnesini ve değerlendirmedeki değeri kabul eder, daha sonra oluşturduğumuz standartlara göre bu yöntem girilen veriler arasında ayrım yapabilir ve doğrulamamıza uyup uymadıklarını ayırt edebilir, değilse, olacaktır. bir istisna oluşturabilir ve belirlediğimiz bir hata mesajı gönderebilir.
Aşağıdaki resimde iki yeni özel alan türünün oluşturulduğu bir kod görelim:
Daha sonra adında bir hata tanımlarız. out_of_rangeBu, kullanıcıyı yönlendiren bir mesaj gösterebilmek için verileri doğrulama sırasında bir istisna oluşturduğumuzda bize yardımcı olur; bu bize farklı hatalar için farklı türde mesajlara sahip olma fırsatı verir.
ÖnemliSonunda üzerine yazıyoruz temiz yöntem her yeni sınıfın içinde, yeni doğrulamayı detaylandırabilmemiz için önce yöntemi kullanırız Çok temiz () bu, sınıfın clean () yöntemine yapılan çağrılarla alanlar.DecimalFields bununla, kendi doğrulamamızı değerlendirmeden önce bunların doğru bir sayısal tür olduklarını doğrulayabiliriz, bu da bizi girilen veri türünün bir doğrulamasını bulma zorunluluğundan kurtarır, burada devralmanın avantajına dikkat çekilmiştir.
Son olarak koşullarımızla doğrularız ve yerine getirilmezse hatayı yükseltiriz; bu yüzden zaten özel bir alan oluşturduk.
Bununla öğreticiyi, ihtiyaçlarımıza daha yakın uygulamalar yapmamızı sağlayan ek bir araçla bitiriyoruz.Bu Eğitimi beğendiniz ve yardım ettiniz mi?Yazara olumlu puan vermek için bu düğmeye basarak yazarı ödüllendirebilirsiniz.