from django import forms
第一步:首先在models.py中定義乙個表單模型
class remarkform(forms.form):
subject = forms.charfield(max_length=100 ,label=
mail = forms.emailfield(label=
'電子郵件')
topic = forms.choicefield(choices=topic_choices,label=
'選擇評分')
message = forms.charfield(label=
cc_myself = forms.booleanfield(required=
false ,label=
'訂閱該貼')
那個topic中的choices需要在models.py中定義乙個陣列.
這樣,之後在html顯示的表單就採用這個模型的資料了。
另外還有一種定義表單模型的方式,那就是直接繼承另乙個models。如果我們在models裡設計資料庫時,已經設計好了乙個類(就是資料庫的表)之後想復用這個類的資訊來作為表單的模型,那麼很簡單,同樣是在models中的乙個類
class advertisement(models.model):
#訂單編號
orderid = models.foreignkey(orderinfo)
#//廣告標題#
title = models.charfield(max_length = 36)
#//廣告內容#
content = models.charfield(max_length = 600)
注意,他的型別是models.model,是做資料庫orm用的。
然後怎麼關聯呢?
需要匯入乙個新的類 (modelform)
from django.forms import modelform
class contactform(modelform):
class meta:
model = advertisement
fields = (
'title', 'customerid')
這裡的advertisement就是之前那個orm的模型。
第二步:ok,繼續我們的表單,下一步需要做什麼呢?開始在views.py裡寫對表單的呼叫吧.
def remark(request):
if request.method ==
'post': # 如果表單被提交
form = contactform(request.post) # 獲取post表單資料
if form.is_valid(): # 驗證表單
'/') # 跳轉
else:
form = contactform() #獲得表單物件
return render_to_response(
'message.html', )
整個**很簡單,我就不過多的解釋了。
第三步:我們知道django裡任何訪問都是通過urls.py來管理的。所以下面我們需要配置乙個路徑。
(r '^message', 'iring.views.remark'),
第四步:最後應該是建立乙個模板的時候了,因為我們最終是輸出到html上的.注意views的remark函式最後一行
return render_to_response(
'message.html', )
就是講當前的表單物件輸出到message.html裡,自動生成乙個表單。
所以,先構建乙個html.
這個html模板很簡單,除去不必要的css,我只給出核心部分好啦。
<
form
action
="/message/"
method
="post"
>
<
divclass
>
}:}
}
div>
<
divclass
>
<
p>
<
input
type
="submit"
value
/>
p>
div>
form
>
用於對表單物件裡的元素進行遍歷,然後通過}}
}這三個標籤來輸出,注意}預設情況下是不會輸出的,只有當驗證表單正確性時才會輸出內容。
最終我們通過
http://youdjangourl/message來訪問這個例子
Django中的Form表單驗證
前端有若干個input輸入框,將使用者輸入內容,以字典傳遞給後端。後端預先存在乙個form表單驗證的基類,封裝了乙個檢測使用者輸入是否全部通過的方法。該方法會先定義好錯誤資訊的字典,並會遍歷類的所有屬性 對應前端待驗證的輸入域 呼叫各自的驗證方法,將錯誤資訊 兩類,必要與否以及格式正確與否 存入字典...
django學習 Form表單
在驗證某個欄位的時候,可以傳遞乙個validators引數用來指定驗證器,對資料進行進一步的過濾。驗證器有很多,但是很多驗證器我們其實已經通過這個field或者一些引數就可以指定了。比如emailvalidator,我們可以通過emailfield來指定,比如maxvaluevalidator,我們...
Django的form表單和ajax
在web開發中,表單提交是乙個很常見的功能,在django中,使用form表單提交較為簡單,需要注意在表單中新增,如果不想這樣做,也可以在對應的view方法中新增裝飾器 csrf exempt,強制不使用csrf認證。如果是ajax提交表單,則相對複雜一些,在ajax提交時,除了提交你的表單內容資料...