Django 模型之定義屬性

2021-10-12 18:47:46 字數 1708 閱讀 5930

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。屬性命名限制 字段型別...