1. 程式人生 > >Django 資料模型的欄位列表整理

Django 資料模型的欄位列表整理

一個模型最重要也是唯一必需的部分,是它定義的資料庫欄位。

欄位名稱限制:

1.一個欄位名不能是一個Python保留字,因為那樣會導致一個Python語法錯誤。

2.一個欄位名不能包含連續的一個以上的下劃線,因為那是Django查詢語句的語法。欄位
列表縱覽表

欄位名

引數

意義

AutoField

一個能夠根據可用ID自增的 IntegerField

BooleanField

一個真/假(true/false)欄位

CharField

 (max_length)

一個字串欄位,適用於中小長度的字串。對於長段的文字,請使用 TextField

CommaSeparatedIntegerField

 (max_length)

一個用逗號分隔開的整數字段

DateField

([auto_now], [auto_now_add])

日期欄位

DateTimeField

時間日期欄位,接受跟 DateField 一樣的額外選項

EmailField

一個能檢查值是否是有效的電子郵件地址的 CharField

FileField

(upload_to)

一個檔案上傳欄位

FilePathField

(path,[match],[recursive])

一個擁有若干可選項的欄位,選項被限定為檔案系統中某個目錄下的檔名

FloatField

(max_digits,decimal_places)

一個浮點數,對應Python中的 float 例項

ImageField

(upload_to, [height_field] ,[width_field])

像 FileField 一樣,只不過要驗證上傳的物件是一個有效的圖片。

IntegerField

一個整數。

IPAddressField

一個IP地址,以字串格式表示(例如: “24.124.1.30” )。

NullBooleanField

就像一個 BooleanField ,但它支援 None /Null 。

PhoneNumberField

它是一個 CharField ,並且會檢查值是否是一個合法的美式電話格式

PositiveIntegerField

和 IntegerField 類似,但必須是正值。

PositiveSmallIntegerField

與 PositiveIntegerField 類似,但只允許小於一定值的值,最大值取決於資料庫.

SlugField

 嵌條 就是一段內容的簡短標籤,這段內容只能包含字母、數字、下

劃線或連字元。通常用於URL中

SmallIntegerField

和 IntegerField 類似,但是隻允許在一個數據庫相關的範圍內的數值(通常是-32,768到

+32,767)

TextField

一個不限長度的文字欄位

TimeField

時分秒的時間顯示。它接受的可指定引數與 DateField 和 DateTimeField 相同。

URLField

用來儲存URL的欄位。

USStateField

美國州名稱縮寫,兩個字母。

XMLField

(schema_path)

它就是一個 TextField ,只不過要檢查值是匹配指定schema的合法XML。

通用欄位引數列表(所有的欄位型別都可以使用下面的引數,所有的都是可選的。)

引數名

意義

null

如果設定為 True 的話,Django將在資料庫中儲存空值為 NULL 。預設為 False 。

blank

如果是 True ,該欄位允許留空,預設為 False 。

choices

一個包含雙元素元組的可迭代的物件,用於給欄位提供選項。

db_column

當前欄位在資料庫中對應的列的名字。

db_index

如果為 True ,Django會在建立表格(比如執行 manage.py syncdb )時對這一列建立資料庫索引。

default

欄位的預設值

editable

如果為 False ,這個欄位在管理介面或表單裡將不能編輯。預設為 True 。

help_text

在管理介面表單物件裡顯示在欄位下面的額外幫助文字。

primary_key

如果為 True ,這個欄位就會成為模型的主鍵。

radio_admin

預設地,對於 ForeignKey 或者擁有 choices 設定的欄位,Django管理介面會使用列表選擇框(<select>)。如果 radio_admin 設定為 True 的話,Django就會使用單選按鈕介面。

unique

如果是 True ,這個欄位的值在整個表中必須是唯一的。

unique_for_date

把它的值設成一個 DataField 或者 DateTimeField 的欄位的名稱,可以確保欄位在這個日期內不會出現重複值。

unique_for_month

和 unique_for_date 類似,只是要求欄位在指定欄位的月份內唯一。

unique_for_year

和 unique_for_date 及 unique_for_month 類似,只是時間範圍變成了一年。

verbose_name

除 ForeignKey 、 ManyToManyField 和 OneToOneField 之外的欄位都接受一個詳細名稱作為第一個位置引數。