国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Django中modelform組件實例用法總結(jié)

2020-02-15 21:17:20
字體:
供稿:網(wǎng)友

modelform是model衍生出來的form .

modelform的用法非常死.

首先在models.py里創(chuàng)建模型表.

所有的form組件單獨放在form.py文件,其他地方引入form就可以.

創(chuàng)建modelfrom

只要告訴modelform哪一個模型表,它會自動幫我們比對models模型表字段,并衍生成form組件.它不光給我們提供form組件,還有組件沒有的功能.

所有字段都生成form組件.

fields="__all__"   

username和password字段生成form組件.

fields=['username','password'] 

排除gender字段以外都生成form組件.

exclude=['gender'] 

modelform用在兩個地方,一個是添加,一個是編輯.

添加數(shù)據(jù)

form添加數(shù)據(jù)先從form取數(shù)據(jù),然后在用models插入數(shù)據(jù).

modelform直接form.save()就可以插入數(shù)據(jù).

編輯數(shù)據(jù)get請求.

form傳值給模板的時候要添加instance數(shù)據(jù),否則模板渲染的時候value是空的.

編輯數(shù)據(jù)post請求.

form.save()的時候要給form添加instance數(shù)據(jù),否則會變成create操作,不是update更新操作.

知識點擴展

創(chuàng)建類

from django.forms import ModelFormfrom django.forms import widgets as wdfrom app01 import modelsclass 類名(ModelForm):  class Meta:     model = models.表名     #models中的表名     fields="__all__",           # 字段     exclude=None,         # 排除字段     widgets=None,          # 自定義插件     error_messages=None,    # 自定義錯誤信息(整體錯誤信息from django.core.exceptions import NON_FIELD_ERRORS)       def clean_字段名     #自定義鉤子函數(shù)

實例化對象

form = 類名(instance=obj,data=request.POST)

instance傳的是已有的對象(在頁面中顯示默認值)

data傳的是從頁面返回過來的值(用戶輸入的值 ,用來驗證)

form.is_valid() #驗證

form.save #將數(shù)據(jù)保存至數(shù)據(jù)庫中(如果有instance參數(shù)就修改數(shù)據(jù)庫中的記錄,如果沒有instance參數(shù)就在數(shù)據(jù)庫中添加新的一條記錄)

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 南华县| 瑞安市| 浦城县| 仁寿县| 修文县| 贵定县| 旺苍县| 山丹县| 禄丰县| 太和县| 河西区| 礼泉县| 盐亭县| 盖州市| 富锦市| 临朐县| 南宫市| 香格里拉县| 昌黎县| 砀山县| 新龙县| 明溪县| 肥西县| 绥芬河市| 吉水县| 读书| 田东县| 喀什市| 邻水| 奇台县| 黄冈市| 深州市| 大新县| 兖州市| 文昌市| 郎溪县| 巴中市| 呼伦贝尔市| 辽中县| 拉孜县| 建水县|