2008-11-14 21 views
6

Bu basit forma sahip olduğumu varsayalım:Django Formları - Nasıl Doğrulanamaz?

class ContactForm(forms.Form): 
    first_name = forms.CharField(required=True) 
    last_name = forms.CharField(required=True) 

Ve bir alan için varsayılan bir değere sahibim ama diğeri değil. Bu yüzden şöyle kurdum:

default_data = {'first_name','greg'} 
form1=ContactForm(default_data) 

Ancak şimdi göstermeye gittiğimde Django, last_name gerektiren bir doğrulama hatası gösteriyor:

print form1.as_table() 

Bunu yapmanın doğru yolu nedir? Bu, kullanıcının gönderdiği veriler olmadığından, yalnızca önceden doldurmak istediğim veriler.

Not: required = False işe yaramaz çünkü kullanıcı verileri gönderdiğinde bunu isterim. Sadece formu ilk sayfada gösterdiğimde, varsayılan bir değere sahip olmayacağım.

cevap

10

Form kurucu, alanlar için varsayılan değerler sağlamaya izin veren initial param değerine sahiptir.

+1

Varsayılan, kullanıcının hiçbir şey yapmadığında ne yapması gerektiği anlamına gelir. Boş ve gerekli çatışmalar içinde olacaktır. İlk olarak, daha sonra geçerliliği geçmeyecek olsa bile, formun ne ile tohumlanacağı anlamına gelir. –

0

şudur:

from django import forms 
class ContactForm(forms.Form): 
    subject = forms.CharField(max_length=100) 
    message = forms.CharField() 
    sender = forms.EmailField() 
    cc_myself = forms.BooleanField(required=False) 

"Gerekli = False" peşinde olduğunuz etkiyi üretmelidir.

+0

Eh kullanıcı veri gönderir gerekli istiyorum. Sadece formu ilk sayfada gösterdiğimde, varsayılan bir değere sahip olmayacağım. (bununla ilgili güncel soru) – Greg

1

Ayrıca manuel net hata daha sonra doğrulamak ve mümkün: form.errors.clear()

İlgili konular