1. 程式人生 > >django 常用欄位型別

django 常用欄位型別

 

<1> CharField
        #字串欄位, 用於較短的字串.
        #CharField 要求必須有一個引數 maxlength, 用於從資料庫層和Django校驗層限制該欄位所允許的最大字元數.

<2> IntegerField
       #用於儲存一個整數.

<3> FloatField
        # 一個浮點數. 必須 提供兩個引數:
        #
        # 引數    描述
        # max_digits    總位數(不包括小數點和符號)
        # decimal_places    小數位數
                # 舉例來說, 要儲存最大值為 
999 (小數點後儲存2位),你要這樣定義欄位: # # models.FloatField(..., max_digits=5, decimal_places=2) # 要儲存最大值一百萬(小數點後儲存10位)的話,你要這樣定義: # # models.FloatField(..., max_digits=19, decimal_places=10) # admin 用一個文字框(<input type="
text">)表示該欄位儲存的資料. <4> AutoField # 一個 IntegerField, 新增記錄時它會自動增長. 你通常不需要直接使用這個欄位; # 自定義一個主鍵:my_id=models.AutoField(primary_key=True) # 如果你不指定主鍵的話,系統會自動新增一個主鍵欄位到你的 model. <5> BooleanField # A true/false field. admin 用 checkbox 來表示此類欄位. <6> TextField # 一個容量很大的文字欄位. # admin 用一個
<textarea> (文字區域)表示該欄位資料.(一個多行編輯框). <7> EmailField # 一個帶有檢查Email合法性的 CharField,不接受 maxlength 引數. <8> DateField # 一個日期欄位. 共有下列額外的可選引數: # Argument 描述 # auto_now 當物件被儲存時,自動將該欄位的值設定為當前時間.通常用於表示 "last-modified" 時間戳. # auto_now_add 當物件首次被建立時,自動將該欄位的值設定為當前時間.通常用於表示物件建立時間. #(僅僅在admin中有意義...) <9> DateTimeField # 一個日期時間欄位. 類似 DateField 支援同樣的附加選項. <10> ImageField # 類似 FileField, 不過要校驗上傳物件是否是一個合法圖片.#它有兩個可選引數:height_field和width_field, # 如果提供這兩個引數,則圖片將按提供的高度和寬度規格儲存. <11> FileField # 一個檔案上傳欄位. #要求一個必須有的引數: upload_to, 一個用於儲存上載檔案的本地檔案系統路徑. 這個路徑必須包含 strftime #formatting, #該格式將被上載檔案的 date/time #替換(so that uploaded files don't fill up the given directory). # admin 用一個<input type="file">部件表示該欄位儲存的資料(一個檔案上傳部件) . #注意:在一個 model 中使用 FileField 或 ImageField 需要以下步驟: #(1)在你的 settings 檔案中, 定義一個完整路徑給 MEDIA_ROOT 以便讓 Django在此處儲存上傳檔案. # (出於效能考慮,這些檔案並不儲存到資料庫.) 定義MEDIA_URL 作為該目錄的公共 URL. 要確保該目錄對 # WEB伺服器使用者帳號是可寫的. #(2) 在你的 model 中新增 FileField 或 ImageField, 並確保定義了 upload_to 選項,以告訴 Django # 使用 MEDIA_ROOT 的哪個子目錄儲存上傳檔案.你的資料庫中要儲存的只是檔案的路徑(相對於 MEDIA_ROOT). # 出於習慣你一定很想使用 Django 提供的 get_<#fieldname>_url 函式.舉例來說,如果你的 ImageField # 叫作 mug_shot, 你就可以在模板中以 {{ object.#get_mug_shot_url }} 這樣的方式得到影象的絕對路徑. <12> URLField # 用於儲存 URL. 若 verify_exists 引數為 True (預設), 給定的 URL 會預先檢查是否存在( 即URL是否被有效裝入且 # 沒有返回404響應). # admin 用一個 <input type="text"> 文字框表示該欄位儲存的資料(一個單行編輯框) <13> NullBooleanField # 類似 BooleanField, 不過允許 NULL 作為其中一個選項. 推薦使用這個欄位而不要用 BooleanField 加 null=True 選項 # admin 用一個選擇框 <select> (三個可選擇的值: "Unknown", "Yes""No" ) 來表示這種欄位資料. <14> SlugField # "Slug" 是一個報紙術語. slug 是某個東西的小小標記(短籤), 只包含字母,數字,下劃線和連字元.#它們通常用於URLs # 若你使用 Django 開發版本,你可以指定 maxlength. 若 maxlength 未指定, Django 會使用預設長度: 50. #在 # 以前的 Django 版本,沒有任何辦法改變50 這個長度. # 這暗示了 db_index=True. # 它接受一個額外的引數: prepopulate_from, which is a list of fields from which to auto-#populate # the slug, via JavaScript,in the object's admin form: models.SlugField # (prepopulate_from=("pre_name", "name"))prepopulate_from 不接受 DateTimeFields. <13> XMLField #一個校驗值是否為合法XML的 TextField,必須提供引數: schema_path, 它是一個用來校驗文字的 RelaxNG schema #的檔案系統路徑. <14> FilePathField # 可選專案為某個特定目錄下的檔名. 支援三個特殊的引數, 其中第一個是必須提供的. # 引數 描述 # path 必需引數. 一個目錄的絕對檔案系統路徑. FilePathField 據此得到可選專案. # Example: "/home/images". # match 可選引數. 一個正則表示式, 作為一個字串, FilePathField 將使用它過濾檔名. # 注意這個正則表示式只會應用到 base filename 而不是 # 路徑全名. Example: "foo.*\.txt^", 將匹配檔案 foo23.txt 卻不匹配 bar.txt 或 foo23.gif. # recursive可選引數.要麼 True 要麼 False. 預設值是 False. 是否包括 path 下面的全部子目錄. # 這三個引數可以同時使用. # match 僅應用於 base filename, 而不是路徑全名. 那麼,這個例子: # FilePathField(path="/home/images", match="foo.*", recursive=True) # ...會匹配 /home/images/foo.gif 而不匹配 /home/images/foo/bar.gif <15> IPAddressField # 一個字串形式的 IP 地址, (i.e. "24.124.1.30"). <16># CommaSeparatedIntegerField # 用於存放逗號分隔的整數值. 類似 CharField, 必須要有maxlength引數.