django 模型之定義屬性
django根據屬性的型別確定以下資訊:
django會為表建立自動增長的主鍵列,每個模型只能有乙個主鍵列,如果使用選項設定某屬性為主鍵列後django不會再建立自動增長的主鍵列。
預設建立的主鍵列屬性為id,可以使用pk代替,pk全拼為primary key。
注意:pk是主鍵的別名,若主鍵名為id2,那麼pk是id2的別名。屬性命名限制:
屬性=models.欄位型別(選項)
字段型別
使用時需要引入django.db.models包,字段型別如下:
textfield:大文字字段,一般超過4000個字元時使用。
integerfield:整數。
decimalfield(max_digits=none, decimal_places=none):十進位制浮點數。
floatfield:浮點數。
datefield[auto_now=false, auto_now_add=false]):日期。
timefield:時間,引數同datefield。
datetimefield:日期時間,引數同datefield。
filefield:上傳檔案字段。
選項通過選項實現對字段的約束,選項如下:
綜合演示
修改booktest/models.py中的模型類,**如下:
from django.db import models
#定義圖書模型類bookinfo
class bookinfo(models.model):
#btitle = models.charfield(max_length=20)#圖書名稱
btitle = models.charfield(max_length=20, db_column='title')#通過db_column指定btitle對應**中字段的名字為title
bpub_date = models.datefield()#發布日期
bread = models.integerfield(default=0)#閱讀量
isdelete = models.booleanfield(default=false)#邏輯刪除
#定義英雄模型類heroinfo
class heroinfo(models.model):
hname = models.charfield(max_length=20)#英雄姓名
hgender = models.booleanfield(default=true)#英雄性別
isdelete = models.booleanfield(default=false)#邏輯刪除
#hcomment = models.charfield(max_length=200)#英雄描述資訊
hcomment = models.charfield(max_length=200, null=true, blank=false) #hcomment對應的資料庫中的字段可以為空,但通過後台管理頁面新增英雄資訊時hcomment對應的輸入框不能為空
hbook = models.foreignkey('bookinfo')#英雄與圖書表的關係為一對多,所以屬性定義在英雄模型類中
然後生成遷移檔案並執行遷移命令,最後檢視test2資料庫中的內容。 Django模型之Meta屬性詳解
django模型類的meta是乙個內部類,它用於定義一些django模型類的行為特性。而可用的選項大致包含以下幾類 abstract 這個屬性是定義當前的模型是不是乙個抽象類。所謂抽象類是不會對應資料庫表的。一般我們用它來歸納一些公共屬性字段,然後繼承它的子類可以繼承這些字段。如果abstract ...
django 定義模型
字段型別 字段選項 關係可以維護遞迴的關聯關係,使用 self 指定,詳見 自關聯 用一訪問多 物件.模型類小寫 set bookinfo.heroinfo set用一訪問一 物件.模型類小寫 heroinfo.bookinfo訪問id 物件.屬性 id heroinfo.book id class...
Django模型類定義
資料庫表名 可通過db table指明資料庫表名。關於主鍵 django會為表建立自動增長的主鍵列,每個模型只能有乙個主鍵列,如果使用選項設定某屬性為主鍵列後django不會再建立自動增長的主鍵列。預設建立的主鍵列屬性為id,可以使用pk代替,pk全拼為primary key。屬性命名限制 字段型別...