Django字段類型清單
AutoField:自動遞增的整型字段,添加記錄時它會自動增長捣郊。通常不需要直接使用這個字段;如果你不指定主鍵的話,系統(tǒng)會自動添加一個主鍵字段到你的model寻定。(參閱自動主鍵字段)
BooleanField:布爾字段,管理工具里會自動將其描述為checkbox。
CharField:字符串字段精耐,單行輸入狼速,用于較短的字符串,如要保存大量文本, 使用 TextField卦停,CharField有一個必填參數(shù):
CharField.max_length:字符的最大長度向胡,django會根據(jù)這個參數(shù)在數(shù)據(jù)庫層和校驗層限制該字段所允許的最大字符數(shù)。
TextField:一個容量很大的文本字段惊完, admin 管理界面用 多行編輯框表示該字段數(shù)據(jù)
CommaSeparatedIntegerField:用于存放逗號分隔的整數(shù)值僵芹。類似 CharField,必須maxlength 參數(shù)小槐。
DateField:日期字段拇派,admin 用一個文本框? 來表示該字段數(shù)據(jù)(附帶一個 JavaScript 日歷和一個”Today”快捷按鍵。有下列額外的可選參數(shù):auto_now:當對象被保存時,自動將該字段的值設置為當前時間.通常用于表示 “l(fā)ast-modified” 時間戳;auto_now_add:當對象首次被創(chuàng)建時,自動將該字段的值設置為當前時間.通常用于表示對象創(chuàng)建時間件豌。
DateTimeField:類似 DateField 支持同樣的附加選項桐腌。
EmailField:一個帶有檢查 Email 合法性的 CharField,不接受 maxlength 參數(shù)苟径。
FileField:一個文件上傳字段案站。 要求一個必須有的參數(shù): upload_to, 一個用于保存上載文件的本地文件系統(tǒng)路徑棘街。 這個路徑必須包含 strftime formatting蟆盐, 該格式將被上載文件的 date/time 替換(so that uploaded files don’t fill up the given directory)。在一個 model 中使用 FileField 或 ImageField 需要以下步驟:在你的 settings 文件中遭殉, 定義一個完整路徑給 MEDIA_ROOT 以便讓 Django在此處保存上傳文件石挂。 (出于性能考慮,這些文件并不保存到數(shù)據(jù)庫险污。) 定義 MEDIA_URL 作為該目錄的公共 URL痹愚。 要確保該目錄對 WEB 服務器用戶帳號是可寫的。在你的 model 中添加 FileField 或 ImageField蛔糯, 并確保定義了 upload_to 選項拯腮,以告訴 Django 使用 MEDIA_ROOT 的哪個子目錄保存上傳文件。你的數(shù)據(jù)庫中要保存的只是文件的路徑(相對于 MEDIA_ROOT)蚁飒。 出于習慣你一定很想使用 Django 提供的 get__url 函數(shù)动壤。舉例來說,如果你的 ImageField 叫作 mug_shot淮逻, 你就可以在模板中以 {{ object琼懊。get_mug_shot_url }} 這樣的方式得到圖像的絕對路徑。
FilePathField:選擇指定目錄按限制規(guī)則選擇文件爬早,有三個參數(shù)可選哼丈, 其中”path”必需的,這三個參數(shù)可以同時使用筛严, 參數(shù)描述:path:必需參數(shù)醉旦,一個目錄的絕對文件系統(tǒng)路徑。 FilePathField 據(jù)此得到可選項目脑漫。 Example: “/home/images”髓抑;match:可選參數(shù), 一個正則表達式优幸, 作為一個字符串吨拍, FilePathField 將使用它過濾文件名。 注意這個正則表達式只會應用到 base filename 而不是路徑全名网杆。 Example: “foo羹饰。*\伊滋。txt^”, 將匹配文件 foo23.txt 卻不匹配 bar.txt 或 foo23.gif队秩;recursive:可選參數(shù)笑旺, 是否包括 path 下全部子目錄,True 或 False馍资,默認值為 False筒主。match 僅應用于 base filename, 而不是路徑全名鸟蟹。 如:FilePathField(path=”/home/images”乌妙, match=”foo.*”, recursive=True)…會匹配 /home/images/foo.gif 而不匹配 /home/images/foo/bar.gif
FloatField:浮點型字段建钥。 必須提供兩個 參數(shù)藤韵, 參數(shù)描述:max_digits:總位數(shù)(不包括小數(shù)點和符號)?decimal_places:小數(shù)位數(shù)。如:要保存最大值為 999 (小數(shù)點后保存2位)熊经,你要這樣定義字段:models.FloatField(…泽艘,max_digits=5, decimal_places=2)镐依,要保存最大值一百萬(小數(shù)點后保存10位)的話匹涮,你要這樣定義:models.FloatField(…,max_digits=19馋吗, decimal_places=10)
ImageField:類似 FileField焕盟, 不過要校驗上傳對象是否是一個合法圖片。它有兩個可選參數(shù):height_field 和 width_field宏粤,如果提供這兩個參數(shù),則圖片將按提供的高度和寬度規(guī)格保存灼卢。 該字段要求 Python Imaging 庫绍哎。
IntegerField:用于保存一個整數(shù)。
IPAddressField:一個字符串形式的 IP 地址鞋真, (如 “202.1241.30″)崇堰。
NullBooleanField:類似 BooleanField, 不過允許 NULL 作為其中一個選項涩咖。 推薦使用這個字段而不要用 BooleanField 加 null=True 選項海诲。 admin 用一個選擇框? (三個可選擇的值: “Unknown”, “Yes” 和 “No” ) 來表示這種字段數(shù)據(jù)檩互。
PhoneNumberField:一個帶有合法美國風格電話號碼校驗的 CharField(格式:XXX-XXX-XXXX)特幔。
PositiveIntegerField:類似 IntegerField, 但取值范圍為非負整數(shù)(這個字段應該是允許0值的…可以理解為無符號整數(shù))
PositiveSmallIntegerField:正小整型字段闸昨,類似 PositiveIntegerField蚯斯, 取值范圍較小(數(shù)據(jù)庫相關)SlugField“Slug” 是一個報紙術語薄风。 slug 是某個東西的小小標記(短簽), 只包含字母拍嵌,數(shù)字遭赂,下劃線和連字符。它們通常用于URLs横辆。 若你使用 Django 開發(fā)版本撇他,你可以指定 maxlength。 若 maxlength 未指定狈蚤, Django 會使用默認長度: 50逆粹,它接受一個額外的參數(shù):prepopulate_from, which is a list of fields from which to auto-populate the slug炫惩, via JavaScript
SlugField:是一個報紙術語. slug 是某個東西的小小標記(短簽), 只包含字母,數(shù)字,下劃線和連字符.它們通常用于URLs僻弹。
SmallIntegerField:類似 IntegerField, 不過只允許某個取值范圍內的整數(shù)他嚷。(依賴數(shù)據(jù)庫)
TimeField:時間字段蹋绽,類似于 DateField 和 DateTimeField。
URLField:用于保存 URL筋蓖。 若 verify_exists 參數(shù)為 True (默認)卸耘, 給定的 URL 會預先檢查是否存在(即URL是否被有效裝入且沒有返回404響應)。
USStateField:美國州名縮寫粘咖,由兩個字母組成(天朝人民無視)蚣抗。
XMLField:XML字符字段,校驗值是否為合法XML的 TextField瓮下,必須提供參數(shù):schema_path:校驗文本的 RelaxNG schema 的文件系統(tǒng)路徑翰铡。
Field 選項:
null :缺省設置為false.通常不將其用于字符型字段上,比如CharField,TextField上.字符型字段如果沒有值會返回空字符串讽坏。
blank:該字段是否可以為空锭魔。如果為假,則必須有值
choices:一個用來選擇值的2維元組路呜。第一個值是實際存儲的值迷捧,第二個用來方便進行選擇。如SEX_CHOICES= ((‘F’,'Female’),(‘M’,'Male’),)
core:為內聯(lián)編輯設定的
db_column: 如果設置了胀葱,則會修改列名
db_index 如果為真將為此字段創(chuàng)建索引
default:設定缺省值
editable:如果為假漠秋,admin模式下將不能改寫。缺省為真
help_text:admin模式下幫助文檔
primary_key:設置主鍵抵屿,如果沒有設置django創(chuàng)建表時會自動加上:
radio_admin:用于admin模式下將select轉換為radio顯示庆锦。只用于ForeignKey或者設置了choices
unique:數(shù)據(jù)唯一
unique_for_date:日期唯一,如下例中系統(tǒng)將不允許title和pub_date兩個都相同的數(shù)據(jù)重復出現(xiàn)
title = meta.CharField(maxlength=30,unique_for_date=’pub_date’)
unique_for_month / unique_for_year:用法同上
validator_list:有效性檢查晌该。非有效產(chǎn)生 django.core.validators.ValidationError 錯誤