91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ModelForm組件怎么在django框架中使用

發布時間:2021-03-31 17:31:39 來源:億速云 閱讀:167 作者:Leah 欄目:開發技術

這期內容當中小編將會給大家帶來有關ModelForm組件怎么在django框架中使用,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

一 校驗字段

ModelForm組件的主要格式為:

繼承組件

from django import forms
class UserModelForm(forms.ModelForm):

指定表

model = models.UserInfo

指定要顯示的字段

fields='__all__'  #顯示所有,常用的方式

或者

exclude=['password'] #排除某個字段

或者

fields=['username','password','confirm_password','email','gender','depart'] #此表中的字段決定了頁面顯示的排列順序

插件:指定屬性或者設置字段類型

 widgets = {
      'username': forms.TextInput(attrs={'class': 'form-control', 'placeholder': '用戶名'}),
      'password': forms.PasswordInput(attrs={'class': 'form-control', 'placeholder': '密碼'}),
      'email': forms.EmailInput(attrs={'class': 'form-control', 'placeholder': '郵箱'}),
      'gender': forms.Select(attrs={'class': 'form-control'}),
      'depart': forms.Select(attrs={'class': 'form-control'}),
    }

定制錯誤信息

error_messages = {
      'email':{
        'required':'郵箱不能為空',
        'invalid':'郵箱格式錯誤',
      }
    }

設置顯示的標簽名稱:

labels={"username":"用戶名","password":"密碼"}

設置鉤子函數

def clean_confirm_password(self): #'clean_'加上字段名 這里先使用局部鉤子

當設置了一個字段的鉤子函數時,最后必須要返回這個字段

return confirm

在函數中使用

def user_add(request):
  if request.method == 'GET':
    form = UserModelForm() #最開始訪問的時候是沒有數據的
    return render(request, 'user_form.html', {'form':form})
  form = UserModelForm(data=request.POST) #傳入數據
  if form.is_valid(): #進行校驗
    print(form.cleaned_data)
    form.save()
    return redirect('/crm/user/list/')
  return render(request, 'user_form.html', {'form': form})

區分 form.cleaned_data和form. errors

1  ModelForm組件對數據進行校驗的時候,對于校驗不合格的數據放入 form.errors
2  那么他們到底都長什么樣子呢

#print(form.cleaned_data)
{'username': 'lu5', 'password': '123', 'gender': 1, 'depart': <Department: 部門-1>}
#print(form.errors)
<ul class="errorlist"><li>confirm_password<ul class="errorlist"><li>兩次密碼輸入不一致,請重新輸入</li></ul></li><li>email<ul class="errorlist"><li>郵箱格式錯誤</li></ul></li></ul>

一 校驗字段

下面一個例子:校驗用戶的信息,并且確認用戶的密碼

ModelForm組件怎么在django框架中使用

需要對原有數據進行編輯時,需要加入instance參數例如:

def user_edit(request,nid):
  obj = models.UserInfo.objects.filter(id=nid).first()
  if request.method == 'GET':
    form = UserModelForm(instance=obj) #注意此處
    return render(request, 'user_form.html', {'form':form})
  form = UserModelForm(data=request.POST,instance=obj) #注意此處
  if form.is_valid():
    form.save()
    return redirect('/crm/user/list/')
  return render(request, 'user_form.html', {'form': form})

另外:

django本身就有對字段檢測的功能,只不過單純的是對空的判斷,一般顯示的錯誤信息是英文,我們要顯示為中文呢,怎么處理

LANGUAGE_CODE = 'zh-hans'
# LANGUAGE_CODE = 'en-us'

上述就是小編為大家分享的ModelForm組件怎么在django框架中使用了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

嘉荫县| 德钦县| 新津县| 集贤县| 临安市| 泰顺县| 调兵山市| 宣化县| 河北区| 吴堡县| 洛扎县| 青神县| 浦城县| 柯坪县| 东莞市| 邯郸市| 唐河县| 永福县| 察雅县| 景宁| 太仓市| 上思县| 马山县| 邢台县| 衢州市| 淮滨县| 衡山县| 常宁市| 营山县| 邛崃市| 泰和县| 临沂市| 泰顺县| 台东县| 贡觉县| 理塘县| 兴宁市| 永定县| 洛南县| 河南省| 镇宁|