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 之外的欄位都接受一個詳細名稱作為第一個位置引數。 |