2008-11-14 80 views
6

說我有這個簡單的形式:Django Forms - 如何不驗證?

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

而且我有一個字段的默認值,而不是其他。所以我把它像這樣:

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

但是現在,當我去顯示它,Django的顯示驗證錯誤,需要說姓氏:

print form1.as_table() 

什麼是做這種正確的方法是什麼?由於這不是用戶提交的數據,只是我想預先填寫的數據。

注意: required = False不起作用,因爲我確實希望在用戶提交數據時需要它。就在我第一次在頁面上顯示錶單時,我沒有默認值。

回答

10

窗體構造函數具有initial參數,允許爲字段提供默認值。

+1

默認意味着當用戶什麼都不做時該怎麼做。空的和必需的會有衝突。初始意味着什麼種子,即使它以後不通過驗證。 – 2008-11-14 18:37:40

0

從Django文檔是這樣的:

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) 

「必需=假」應出示你後的效果。

+0

嗯,我想,當用戶提交的數據是必需的。就在我第一次在頁面上顯示錶單時,我沒有默認值。 (用此更新的問題) – Greg 2008-11-14 18:22:50

1

而且這是可能的手動驗證和明確的錯誤後:form.errors.clear()