Bir Django Formu
Coddy'nin Django Journey'sinin Formlar bölümünün bir parçası. Ders 5 / 20.
Tarihsiz formu gönderdiğinizde site çöker: Django boş metni tarihe dönüştüremez. Her alanı tek tek kontrol etmek, her alan ve her hata için kod yazmayı gerektirirdi.
Django formu, alanları forms.py dosyasında bir kez tanımlar ve her alan neyi kabul ettiğini bilir. Bir restoranın rezervasyon formu:
from django import forms
class BookingForm(forms.Form):
name = forms.CharField(max_length=50)
day = forms.DateField()
guests = forms.IntegerField()Aksini belirtmediğiniz sürece her alan zorunludur ve CharField önce boşlukları kaldırır; bu nedenle yalnızca boşluklardan oluşan bir ad, boş kabul edilir.
Görünümde, gelen verilerden formu oluşturun ve is_valid() metodunu çağırın: bu metot her alanı kontrol eder ve True veya False döndürür. Ardından form.cleaned_data, Python türlerine dönüştürülmüş değerleri içerir; dolayısıyla cleaned_data["day"] metin değil, bir datetime.date nesnesidir:
form = BookingForm(request.POST)
if form.is_valid():
day = form.cleaned_data["day"]Görev
KolayYeni etkinliği bir Django formuna doğrulat.
events/forms.pyiçindeEventFormyaz:titleveplaceen fazla 100 karakterlik metin,dateise tarih olsun.new_eventiçinde formurequest.POSTverisinden oluştur. Geçerliyse etkinliğiform.cleaned_dataverisinden oluştur ve etkinliğe yönlendir. Geçerli değilseerrordeğeriniPlease check the form.olarak ayarla.
Formu tarih olmadan gönder: Please check the form. mesajını görürsün.
Kendin dene
from django import forms
Formlar bölümündeki tüm dersler
2Django Formları
Bir Django FormuForm ÇizimiKendi başına pratik yap: Django playground