欄位 一個模型最重要也是唯一必需的部分,是它定義的資料庫欄位 欄位名稱限制 1、欄位名不能是python保留字,這樣會導致python語法錯誤 2、欄位不能包含連續一個以上的下劃線,這樣會和Django查詢語句語法衝突 通用欄位選項 null 如果設置為 True 的話,Django將在資料庫中存儲 ...
欄位
一個模型最重要也是唯一必需的部分,是它定義的資料庫欄位
欄位名稱限制
1、欄位名不能是python保留字,這樣會導致python語法錯誤
2、欄位不能包含連續一個以上的下劃線,這樣會和Django查詢語句語法衝突
通用欄位選項
null 如果設置為 True 的話,Django將在資料庫中存儲空值為 NULL 。預設為 False
blank 如果是 True ,該欄位允許留空,預設為 False
choices 一個包含雙元素元組的可迭代的對象,用於給欄位提供選項
db_column 當前欄位在資料庫中對應的列的名字
db_index 如果為 True,創建表格時對這一列穿件資料庫索引
default 欄位預設值
editable 如果為False,這個欄位在管理那界面或者表單將不能編輯,預設為True
help_text 在管理界面表單對象里顯示在欄位下麵的額外幫助文本。即使你沒有管理表單這個屬性對文檔也是有用的
primary_key 如果為 True ,這個欄位就會成為模型的主鍵
radio_admin 對於 ForeignKey 或者擁有 choices 設置的欄位,Django管理界面會使用列表選擇框(<select>)。如果 radio_admin 設置為 True 的話,Django就會使用單選按鈕界面。 如果欄位不是 ForeignKey 或者沒有 choices 設置的話,就不要對欄位只用這個選項。
unique 如果是 True ,這個欄位的值在整個表中必須是唯一的
unique_for_date 把它的值設成一個 DataField 或者 DateTimeField 的欄位的名稱,可以確保欄位在這個日期內不會出現重覆值
unique_for_month 和 unique_for_date 類似,只是要求欄位在指定欄位的月份內唯一
unique_for_year 和 unique_for_date 及 unique_for_month 類似,只是時間範圍變成了一年
verbose_name ManyToManyField 和 OneToOneField 之外的欄位都接受一個詳細名稱作為第一個位置參數。如果詳細名稱沒有給定的話,Django會把欄位的屬性名中的下劃線轉化成空格後的字元串當作詳細名稱。
例:詳細名稱是 "Person's first name" : first_name = models.CharField("Person's first name", maxlength=30) 下麵的例子中,詳細名稱是 "first name" : first_name = models.CharField(maxlength=30) ForeignKey 、 ManyToManyField 和 OneToOneField 要求第一個參數是一個模型類,所以只能使用關鍵字參數 verbose_name : poll = models.ForeignKey(Poll, verbose_name="the related poll") sites = models.ManyToManyField(Site, verbose_name="list of sites") place = models.OneToOneField(Place, verbose_name="related place") 這種轉換不會把 verbose_name 的首字母大寫,Django會根據需求自動大寫首字母。