Bir Django Formu
Coddy'nin Django Journey'sinin Formlar bölümünün bir parçası. Ders 5 / 20.
Formu tarih olmadan gönderin, site çöker: Django boş metni tarihe dönüştüremez. Her alanı elle 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ı temizler; 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() yöntemini çağırın: bu yöntem her alanı kontrol eder ve True veya False döndürür. Ardından form.cleaned_data, Python'a dönüştürülmüş değerleri içerir; dolayısıyla cleaned_data["day"] metin değil, bir datetime.date değeridir:
form = BookingForm(request.POST)
if form.is_valid():
day = form.cleaned_data["day"]Görev
Kolayevents/forms.pyiçindeEventFormyaz:titleveplaceen fazla 100 karakterlik metin,dateise tarih olsun.new_eventiçindePOSTisteğini bununla doğrula. Geçerliyse dönüştürülmüş değerlerden etkinliği oluştur ve yönlendir. Geçerli değilseerrordeğeriPlease check the form.olacak şekilde sayfayı görüntüle.
Run'a bas ve formu tarih girmeden gönder.
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