鹹魚筆記 Django模型(字段屬性)

2021-09-22 19:37:32 字數 1592 閱讀 5677

學習版本: django 1.8. python 3.5

模型-欄位屬性

模型類屬性命名限制

不能是python的保留關鍵字

不允許使用連續的下劃線

定義屬性時需要指定字段型別,通過字段型別的引數指定選項,語法如下:

屬性名=models.欄位型別(選項)

字段型別

使用時 需要倒入包django.db.models型別

描述autofield

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

booleanfield

布林字段,值為true或false。

nullbooleanfield

支援null、true、false三種值。

charfield(max_length=最大長度)

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

textfield

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

integerfield

整數decimalfield(max_digits=none, decimal_places=none)

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

floatfield

浮點數。引數同上

datefield:([auto_now=false, auto_now_add=false])

日期。1)引數auto_now表示更新的時間,預設為false。2)引數auto_now_add表示建立的時間,它總是使用當前日期,預設為false。3)引數auto_now_add和auto_now是相互排斥的,組合將會發生錯誤。

timefield

時間,引數同datefield。

datetimefield

日期時間,引數同datefield。

filefield

上傳檔案字段。

imagefield

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

選項通過選項實現對字段的約束,選項如下:

選項名描述

default

預設值。 設定預設值。

primary_key

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

unique

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

db_index

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

db_column

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

null

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

blank

如果為true,則該字段允許為空白,預設值是false。

null是資料庫範疇的概念,blank是後台管理頁面表單驗證範疇的。

當修改模型類之後,如果新增的選項不影響表的結構,則不需要重新做遷移,商品的選項中default和blank不影響表結構。

更多字段詳情請查閱官方文件

Django 模型字段 ImageField

class imagefield upload to none height field none width field none max length 100,options 從filefield繼承所有屬性和方法,但也會驗證上載的物件是否為有效影象。除了filefield可用的特殊屬性外,im...

django模型 欄位和選項

一 常用字段 1 字段型別 使用時需要引入django.db.models包,字段型別如下 autofield 自動增長的integerfield,通常不用指定,不指定時django會自動建立屬性名為id的自動增長屬性 booleanfield 布林字段,值為true或false nullboole...

Django現有模型增加字段

對於django已經存在的模型中需要增加乙個字段,如何實現?首先在model.py檔案中找到對應的模型名稱,加入需要增加的字段 找到新增加的字段的sql語句,記錄下來 再執行python manage.py shell 執行如下命令 from django.db import connection ...