Django模型類定義

2021-09-11 18:32:04 字數 2448 閱讀 6855

資料庫表名

可通過db_table指明資料庫表名。

關於主鍵

django會為表建立自動增長的主鍵列,每個模型只能有乙個主鍵列,如果使用選項設定某屬性為主鍵列後django不會再建立自動增長的主鍵列。

預設建立的主鍵列屬性為id,可以使用pk代替,pk全拼為primary key。

屬性命名限制

字段型別

型別說明

autofield

自動增長的integerfield,通常不用指定,不指定時django會自動建立屬性名為id的自動增長屬性

booleanfield

布林字段,值為true或false

nullbooleanfield

支援null、true、false三種值

charfield

字串,引數max_length表示最大字元個數

textfield

大文字字段,一般超過4000個字元時使用

integerfield

整數decimalfield

十進位制浮點數, 引數max_digits表示總位數, 引數decimal_places表示小數字數

floatfield

浮點數datefield

日期, 引數auto_now表示每次儲存物件時,自動設定該字段為當前時間,用於"最後一次修改"的時間戳,它總是使用當前日期,預設為false; 引數auto_now_add表示當物件第一次被建立時自動設定當前時間,用於建立的時間戳,它總是使用當前日期,預設為false; 引數auto_now_add和auto_now是相互排斥的,組合將會發生錯誤

timefield

時間,引數同datefield

datetimefield

日期時間,引數同datefield

filefield

上傳檔案字段

imagefield

繼承於filefield,對上傳的內容進行校驗,確保是有效的

選項選項

說明null

如果為true,表示允許為空,預設值是false

db_column

欄位的名稱,如果未指定,則使用屬性的名稱

db_index

若值為true, 則在表中會為此字段建立索引,預設值是false

default

預設primary_key

若為true,則該字段會成為模型的主鍵字段,預設值是false,一般作為autofield的選項使用

unique

如果為true, 這個欄位在表中必須有唯一值,預設值是false

外來鍵在設定外來鍵時,需要通過on_delete選項指明主表刪除資料時,對於外來鍵引用表資料如何處理,在django.db.models中包含了可選常量:

insert

into tb_books(btitle,bpub_date,bread,bcomment,is_delete)

values

('射鵰英雄傳'

,'1980-5-1',12

,34,0

),('天龍八部'

,'1986-7-24',36

,40,0

),('笑傲江湖'

,'1995-12-24',20

,80,0

),('雪山飛狐'

,'1987-11-11',58

,24,0

);insert

into tb_heros(hname,hgender,hbook_id,hcomment,is_delete)

values

('郭靖',0

,1,'降龍十八掌',0

),('黃蓉',1

,1,'打狗棍法',0

),('黃藥師',0

,1,'彈指神通',0

),('歐陽鋒',0

,1,'**功',0

),('梅超風',1

,1,'九陰白骨爪',0

),('喬峰',0

,2,'降龍十八掌',0

),('段譽',0

,2,'六脈神劍',0

),('虛竹',0

,2,'天山六陽掌',0

),('王語嫣',1

,2,'神仙姐姐',0

),('令狐沖',0

,3,'獨孤九劍',0

),('任盈盈',1

,3,'彈琴',0

),('岳不群',0

,3,'華山劍法',0

),('東方不敗',1

,3,'葵花寶典',0

),('胡斐',0

,4,'胡家刀法',0

),('苗若蘭',1

,4,'黃衣',0

),('程靈素',1

,4,'醫術',0

),('袁紫衣',1

,4,'六合拳',0

);

django 定義模型

字段型別 字段選項 關係可以維護遞迴的關聯關係,使用 self 指定,詳見 自關聯 用一訪問多 物件.模型類小寫 set bookinfo.heroinfo set用一訪問一 物件.模型類小寫 heroinfo.bookinfo訪問id 物件.屬性 id heroinfo.book id class...

定義模型類

建立應用booktest,在models.py 檔案中定義模型類。from django.db import models 定義圖書模型類bookinfo class bookinfo models.model btitle models.charfield max length 20,verbos...

Django定義和使用模型

學習動力 我今年的專案主要基於django開發,學習了很多新東西。我很多時候,擔心日後會忘記很多有趣的東西,我想寫下筆記。但是從哪個方面入手,我沒有思路。所以檢視了一些書,根據目錄進行總結。希望自己不會錯過什麼!定義模型 為什麼使用orm django豐富的變數型別 為了簡單,我直接編寫和官網一樣的...