Django中ModelForm元件的介紹(程式碼範例)
這篇文章帶給大家的內容是關於Django中ModelForm元件的介紹(程式碼範例),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。
通常在Django專案中,我們寫的大部分都是與Django 的模型緊密映射的表單。舉個例子,你也許會有個Book 模型,你也想建立一個form表單用來新增和編輯書籍資訊到這個模型。在這種情況下,在form表單中定義欄位將是冗餘的,因為我們已經在模型中定義了那些欄位。
基於這個原因,Django 提供一個輔助類別來讓我們可以從Django 的模型建立Form,這就是ModelForm。
modelForm定義
form與model的結合。
from django import forms from crm import models class RegForm(forms.ModelForm): password = forms.CharField( widget=forms.PasswordInput, label='密码', min_length=6, max_length=12 ) re_password = forms.CharField( widget=forms.PasswordInput, label='确认密码', min_length=6, max_length=12 ) mobile = forms.CharField( ) class Meta: model = models.UserProfile # 指定model fields = '__all__' # 全部字段 # fields = ['username','password'] # 指定字段 exclude = ['is_active'] # 除某个字段之外的其余字段 labels = { 'username':'用户名' } error_messages = { 'min_length': '太短了', } widgets = { 'username': forms.TextInput(attrs={'placeholder': '用户名@xx.com'}), }
class Meta下常用參數:
model = models.Book # 对应的Model中的类 fields = "__all__" # 字段,如果是__all__,就是表示列出所有的字段 exclude = None # 排除的字段 labels = None # 提示信息 help_texts = None # 帮助提示信息 widgets = None # 自定义插件 error_messages = None # 自定义错误信息
ModelForm的驗證
與普通的Form表單驗證類型類似,ModelForm表單的驗證在呼叫is_valid() 或存取errors屬性時隱式調用。
我們可以像使用Form類別一樣自訂局部鉤子方法和全域鉤子方法來實作自訂的校驗規則。
如果我們不重寫具體欄位並設定validators屬性的化,ModelForm是依照模型中欄位的validators來校驗的。
save()方法
每個ModelForm也具有一個save()方法。這個方法根據表單綁定的資料來建立並保存資料庫物件。 ModelForm的子類別可以接受現有的模型實例作為關鍵字參數instance;如果提供此功能,則save()將更新該實例。如果沒有提供,save() 將建立模型的一個新實例:
>>> from myapp.models import Book >>> from myapp.forms import BookForm # 根据POST数据创建一个新的form对象 >>> form_obj = BookForm(request.POST) # 创建书籍对象 >>> new_ book = form_obj.save() # 基于一个书籍对象创建form对象 >>> edit_obj = Book.objects.get(id=1) # 使用POST提交的数据更新书籍对象 >>> form_obj = BookForm(request.POST, instance=edit_obj) >>> form_obj.save()
以上是Django中ModelForm元件的介紹(程式碼範例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

查看django版本步驟:1、開啟終端機或命令提示字元視窗;2、確保已經安裝了Django,如果沒有安裝Django,可以使用套件管理工具來進行安裝,輸入pip install django命令即可;3、安裝完成後,可以使用python -m django --version來查看Django的版本。

Django和Flask都是PythonWeb框架中的佼佼者,它們都有著自己的優點和適用場景。本文將對這兩個框架進行比較分析,並提供具體的程式碼範例。開發簡介Django是一個全功能的Web框架,它的主要目的是為了快速開發複雜的Web應用。 Django提供了許多內建的功能,例如ORM(物件關聯映射)、表單、認證、管理後台等。這些功能使得Django在處理大型

Django是一個完整的開發框架,該框架涵蓋了Web開發生命週期的各個方面。目前,這個框架是全球最受歡迎的Web框架之一。如果你打算使用Django來建立自己的Web應用程序,那麼你需要了解Django框架的優點和缺點。以下是您需要知道的一切,包括具體程式碼範例。 Django優點:1.快速開發-Djang可以快速開發Web應用程式。它提供了豐富的庫和內

如何升級Django版本:步驟和注意事項,需要具體程式碼範例引言:Django是一個功能強大的PythonWeb框架,它持續地進行更新和升級,以提供更好的效能和更多的功能。然而,對於使用較舊版Django的開發者來說,升級Django可能會面臨一些挑戰。本文將介紹如何升級Django版本的步驟和注意事項,並提供具體的程式碼範例。一、備份項目檔案在升級Djan

django是後端。詳細介紹:儘管Django主要是後端框架,但它與前端開發密切相關。透過Django的模板引擎、靜態檔案管理和RESTful API等功能,前端開發人員可以與後端開發人員合作,共同建立功能強大、可擴展的Web應用程式。

差異是:1、Django 1.x系列:這是Django的早期版本,包括1.0、1.1、1.2、1.3、1.4、1.5、1.6、1.7、1.8和1.9等版本。這些版本主要提供基本的Web開發功能;2、Django 2.x系列:這是Django的中期版本,包括2.0、2.1、2.2等版本;3、Django 3.x系列:這是Django的最新版本系列,包括3.0、3等版本。

查看django版本的方法:1、透過命令列查看,在終端機或命令列視窗中輸入「python -m django --version」命令;2、在Python互動式環境中查看,輸入「import django print(django. get_version())」代碼;3、檢查Django專案的設定文件,找到名為INSTALLED_APPS的列表,其中包含已安裝的應用程式資訊。

Django是一個由Python編寫的web應用框架,它強調快速開發和乾淨方法。儘管Django是web框架,但要回答Django是前端還是後端這個問題,需要深入理解前後端的概念。前端是指使用者直接和互動的介面,後端是指伺服器端的程序,他們透過HTTP協定進行資料的互動。在前端和後端分離的情況下,前後端程式可以獨立開發,分別實現業務邏輯和互動效果,資料的交
