九 django通過forms對頁面資料校驗

2022-08-31 17:18:14 字數 1778 閱讀 9252

以乙個student學生表為例子
class

student(models.model):

name = models.charfield(verbose_name='

名稱',max_length=10)

phone = models.charfield(max_length=11,unique=true,verbose_name='

手機號'

) money = models.floatfield(verbose_name='

錢',default=0,null=true)

class

meta:

verbose_name = '

學生表'

verbose_name_plural =verbose_name

db_table = '

student

'def

__str__

(self):

return self.name

校驗**實現

views.py

from django import forms  #

校驗from django.core.exceptions import validationerror #異常#

寫乙個校驗的類,用於校驗資料

class

studentform(forms.form):

#校驗的類

name = forms.charfield(min_length=2,max_length=10)

phone = forms.charfield(min_length=11,max_length=11)

money = forms.floatfield(required=false)#

required=true 必傳,預設就是true

defclean_phone(self):

'''鉤子,自定義校驗規則,函式名是clean_欄位名

'''phone = self.cleaned_data['

phone

'] #

把資料中的phone資料拿過來

if models.student.objects.filter(phone=phone):

raise validationerror('

手機號已存在')

return

phone

#頁面的後台函式

defstudent(request):

stu_form = studentform(request.post) #

校驗的類

if stu_form.is_valid(): #

is_valid如果這是合法的

django元件 forms元件

針對乙個例項 註冊使用者講解。模型 models.py class userinfo models.model name models.charfield max length 32 pwd models.charfield max length 32 email models.emailfield...

Django元件 forms元件

針對乙個例項 註冊使用者講解。模型 models.py class userinfo models.model name models.charfield max length 32 pwd models.charfield max length 32 email models.emailfield...

Django的forms元件使用

models.py class userinfo models.model name models.charfield max length 32 pwd models.charfield max length 32 email models.emailfield 模板檔案 lang en char...