Django中modelform組件實例用法總結(jié)
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 ModelForm from django.forms import widgets as wd from app01 import models class 類名(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ù)庫中添加新的一條記錄)
以上這篇基于Django的ModelForm組件(詳解)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python NumPy創(chuàng)建數(shù)組方法
這篇文章主要介紹了Python NumPy創(chuàng)建數(shù)組方法,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的朋友可以參考一下2022-09-09PyTorch中torch.matmul()函數(shù)常見用法總結(jié)
torch.matmul()也是一種類似于矩陣相乘操作的tensor連乘操作。但是它可以利用python中的廣播機制,處理一些維度不同的tensor結(jié)構(gòu)進行相乘操作,這篇文章主要介紹了PyTorch中torch.matmul()函數(shù)用法總結(jié),需要的朋友可以參考下2023-04-04Python深度學(xué)習(xí)albumentations數(shù)據(jù)增強庫
下面開始albumenations的正式介紹,在這里我強烈建議英語基礎(chǔ)還好的讀者去官方網(wǎng)站跟著教程一步步學(xué)習(xí),而這里的內(nèi)容主要是我自己的一個總結(jié)以及方便英語能力較弱的讀者學(xué)習(xí)2021-09-09Python 獲取 datax 執(zhí)行結(jié)果保存到數(shù)據(jù)庫的方法
今天小編就為大家分享一篇Python 獲取 datax 執(zhí)行結(jié)果保存到數(shù)據(jù)庫的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-07-07python3利用pathlib替代os.path的方法實例
os.path 模塊始終是適合Python運行的操作系統(tǒng)的路徑模塊,因此可用于本地路徑,下面這篇文章主要給大家介紹了關(guān)于python3利用pathlib替代os.path的相關(guān)資料,需要的朋友可以參考下2022-04-04Pytorch之Tensor和Numpy之間的轉(zhuǎn)換的實現(xiàn)方法
這篇文章主要介紹了Pytorch之Tensor和Numpy之間的轉(zhuǎn)換的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09Python?Collections庫的高級功能使用示例詳解
Python的collections庫提供了一系列有用的數(shù)據(jù)類型,擴展了內(nèi)建的數(shù)據(jù)類型,為開發(fā)者提供了更多高級功能,本文將深入探討collections庫的一些高級功能,通過詳細的示例代碼演示,幫助大家更好地理解和應(yīng)用這些功能2023-12-12