orm中使用modelForm新增資料

萝卜薰發表於2024-06-16

ModelForm 可以簡化表格資料輸入的流程,還能對輸入的資料進行校驗。

1.在views.py中建立ModelForm的類

from django import forms
class UserModelForm(forms.ModelForm):
name = forms.CharField(min_length=3,label='使用者名稱') 這是校驗條件,相當於限制了後續輸入新的資料時,其中的“name”資料必須是長度最小為3的字串;如果校驗條件什麼都不寫,就只能判斷是否為空
class Meta:
model = models.UserInfo UerInfo是我們想要關聯的資料表的名稱
fields = ['name','password','age','account','gender','depart'] fields裡面是這個資料表中的列名

2.在url.py建立路徑後,再去views.py建立同名函式

def user_model_form_add(request):
if request.method =='GET':
form = UserModelForm()
return render(request,'user_model_form_add.html',{'form':form})
使用者Post提交資料,資料校驗
form = UserModelForm(data=request.POST)
if form.is_valid():
print(form.cleaned_data)
form.save() 自動儲存到UserInfo這個資料表內
return redirect('user/list/')
else:
print(form.errors)

3.在templates資料夾中建立同名html檔案user_model_form_add.html


這裡的fields.label是返回的UserInfo這個模型每個object的verbose_name,在html內寫好for迴圈,以後fields內新增了新的內容也能自動生成

相關文章