django系列4 資料庫字段約束

2021-10-07 05:46:31 字數 2757 閱讀 8911

字段約束是在搭建資料庫時,最欄位進行的額外約束。

(1)null:預設為false,當設定為true時,該欄位插入資料時可以為空,使用null進行填充。

(2)blank:預設為false,為false時在admin後台中表單必須要填內容,為true時可以允許表單為空。一般與null=true或de****t連用。

(3)choices:接收乙個可重複的列表或元組(基本單位為二元組)。如果指定了該引數,在例項化該模型時,該變數只能選擇列表中的值。

如:

class

person

(models.model)

: shirt_sizes =((

's',

'small'),

('m'

,'medium'),

('l'

,'large'),

) name = models.charfield(max_length=60)

shirt_size = models.charfield(max_length=

1,choices=shirt_sizes)

(4)default:該變數的值,可以是乙個值或者是乙個可呼叫的物件,如果是個可呼叫的物件,每次例項化模型時都會呼叫該物件。預設不能是可變物件(模型例項,listset等),作為該物件的相同例項的引用將被用作在所有新的模型例項的預設值。而是將所需的預設值包裝在可呼叫中。例如,如果要指定乙個預設dictjsonfield,使用函式:

def

contact_default()

:return

contact_info = jsonfield(

"contactinfo"

, default=contact_default)

(5)help_text:額外的幫助文字,將與表單視窗小部件儀器顯示,即使欄位未在表單上使用,對於文件記錄很有幫助。

(6)primary_key:如果設定為true,則該初始設定為該模型的主鍵。在乙個模型中,如果沒有對任何乙個字段設定primary_key=true選項。djnago中會自動新增乙個integerfield欄位,用於設定為主鍵,因此除非像重寫預設的主鍵,否則可以不手動設定主鍵。

(7)unique:如果設定為true,這個細分必須在整個表中保持值唯一。

(8)verbose_name:該字段的易讀名稱。如果未提供詳細名稱,則django將使用欄位的屬性名稱自動建立,將下劃線轉換為空格。在admin管理後台中會顯示該名稱。

(9)db_colum:用於此字段的資料庫序列名稱。如果未指定,django將使用該字段的名稱。

(10)db_index:如果為true,將為此字段建立資料庫索引。

(11)db.tablespace:如果該字段已建立索引,則用於該字段的索引為資料庫表空間的名稱。預設值是專案的default_index_tablespace設定(如果已設定),或者db_tablespace是模型的設定(如果有)。如果後端不支援索引的表空間,則可以忽略。postgresql和oracle支援表空間。sqlite和mysql不支援。

(12)editable:如果為false,則該字段將不會顯示在管理員或其它任何人中modelform。在模型驗證期間也將跳過他們。預設值為true。

(13)error_messages:引數可以覆蓋還該字段將引發的預設訊息。傳遞乙個包含與您要覆蓋的錯誤訊息相匹配的鍵的字典。錯誤訊息包括:null,blank,invalid,invalid_choice,unique,和unique_for_date。

(14)unique_for_date:將設定為datefield或datetimefield的日期欄位的值是唯一的。當字段為datetimefield時,僅考慮欄位的日期部分。

(15)unique_for_month:要求該欄位相對於月份是唯一的。

(16)unique_for_year:要求該欄位對於年份是唯一的。

(17)validators:要為此字段執行的驗證器列表。驗證器示例:

from django.core.exceptions import validationerror

from django.utils.translation import gettext_lazy as _

defvalidate_even

(value)

:if value %2!=

0:raise validationerror(

_('%(value)s is not an even number'),

params=

,)

資料庫字段 django

資料庫型別 autofield 自動增長的主鍵id,通常不用指定,不指定時django會自動建立屬性名為id的自動增長屬性 booleanfield 布林字段,值為true或false。許可權管理 nullbooleanfield 布林字段,支援null true false三種值。default ...

Django 中資料庫字段型別彙總

autofield 乙個根據可用ids,自增的乙個整型,一般不會用到這個型別,應為定義auto increment的字段具備此功能 bigintegerfield64位整形 binaryfield二進位制型別,注意這個型別的資料不能對它進行查詢過濾 booleanfieldtrue false,長用...

Django資料庫模型的字段型別總結

v models.charfield max length none options varchar v models.emailfield max length 75,options varchar v models.urlfield verify exists true,max length 2...