一個模型最重要也是唯一必需的部分,是它定義的數據庫字段。
字段名稱限制:
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 之外的字段都接受一個詳細名稱作為第一個位置參數。 |
