亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標題: django中的newforms系統(tǒng)學(xué)習(xí)記錄(一) [打印本頁]

作者: honglang13    時間: 2008-08-23 20:34
標題: django中的newforms系統(tǒng)學(xué)習(xí)記錄(一)
1.django的form系統(tǒng)現(xiàn)在包括oldforms,newforms,默認forms指向oldforms.
newforms中包含主要包含fields(Field類,類型集和表單框內(nèi)容的校驗規(guī)則)、forms(Form類)、models(從models轉(zhuǎn)換為forms)、widgets(widget類,表單框的類型)、util(主要有ValidationError異常類),而__init__.py導(dǎo)入了newforms中的所有模塊的所有屬性。所以導(dǎo)入newforms系統(tǒng)時,一般只需
from django import newforms as forms
2.從django標準Form類繼承,建立新form類,其中可能還用到Field和Widget類,
如果要自定義表單框內(nèi)容的輸入校驗規(guī)則,只需要定義一個新方法clean_XXX來定義自己的校驗規(guī)則;
大致格式例:
from django import newforms as forms

class bookforms(forms.Form):
    name=forms.CharField()
   
    def clean_name(self):
        name=self.clean_data.get('name','')
        if ...:
           raise forms.ValidationError('...')
        return name

form類實例對象(formobject)的is_valid()方法,可以判斷表單輸入內(nèi)容是否通過驗證;
clean_data屬性和clean方法,得到一個字典對象,包含驗證后的數(shù)據(jù)字典;
如果XXX驗證不通過,那么XXX的錯誤信息將存儲在formobject.XXX.errors或者formobject.errors.XXX
3.templates中調(diào)用實例對象的as_p,as_table,as_ul方法將生成表單,但是這樣生成的表單顯示將有一定局限性,如果既想使用newforms系統(tǒng),又不想使用上述方法來自動生成表單,那么在templates中自定義的表單每個結(jié)構(gòu)的名字都要和自建form類的屬性名完全相同。這樣,我們就可以繼續(xù)使用newforms中的封裝方法。



本文來自ChinaUnix博客,如果查看原文請點:http://blog.chinaunix.net/u1/54760/showart_1145327.html




歡迎光臨 Chinaunix (http://72891.cn/) Powered by Discuz! X3.2