[TOC]
null(空值)
如果設(shè)置為True, 不填寫該字段時存儲NULL到數(shù)據(jù)庫中
默認為False
字符串類型的Field里(CharField 和TextField)不建議使用此選項,因為如此會導(dǎo)致數(shù)據(jù)庫中會存在null和空字符串這兩種情況表示空串
blank(允許為空)
是否可以不填寫,默認為False
和null不同,null是數(shù)據(jù)庫規(guī)定的范疇,blank則是表單驗證的范疇,如果設(shè)置了blank為True則表單驗證時可以不填,如果是False(默認值)則表單中必須填寫該值
choices(選項)
如果字段的值你需要用戶在規(guī)定的某些中選擇一個,而不是用戶隨意填寫一個,那你就可以加上一個choices
他是一個可迭代的結(jié)構(gòu)(列表,元祖),里面的每個元素是一個二元組,如((A,B),(C,D)),A C代表數(shù)據(jù)庫中存儲的值,B D代表展現(xiàn)給用戶的值(顯示的話可以使用 {{get_字段名_display}});如果設(shè)置了choice,表單中的默認樣式就會變成選擇框,而且選項就是choices中的值。
除非blank=False 和default一起在字段中被設(shè)置,否則,可選擇菜單將會有"---------" 的標簽。要重寫這個行為, 需要加入一個包含None的元組到 choices里面; 例如 (None, 'Your String For Display'). 或者, 你可以在操作有意義的地方用一個空字符串代替None - 比如在一個 CharField.
db_column(數(shù)據(jù)庫列名)
指定數(shù)據(jù)庫中該字段的列名,當字段名與python關(guān)鍵字沖突時,指定此參數(shù)可以解決此問題
db_index(字段創(chuàng)建索引)
如果該值為True,則為該字段創(chuàng)建索引
CREATE INDEX ...
db_tablespace(數(shù)據(jù)庫表的命名空間--未理解狀態(tài)中。。。。)
數(shù)據(jù)庫表的命名空間--未理解狀態(tài)中。。。。
default(設(shè)置默認值)
設(shè)置字段的默認值或者一個可調(diào)用的對象
默認值會在新實例創(chuàng)建且沒呀給該字段設(shè)置值時使用,不能使用lambdas函數(shù)作為default,因為無法被uimigrations命令序列化
editable(是否可修改)
如果設(shè)置為False,該字段不會出現(xiàn)在admin或者ModekForm中
error_messages(自定義錯誤信息,待詳細整理)
error_messages 參數(shù)能夠讓你重寫默認拋出的錯誤信息。通過指定 key 來確認你要重寫的錯誤信息。
error_messages 的 key 值包括 null, blank, invalid, invalid_choice, unique, 和 unique_for_date. 其余的 error_messages 的 keys 在不同的Field types中是不一樣的。
help_text(額外的提示信息)
顯示在表單控件form的 額外幫助文本。即便你的字段沒有應(yīng)用到一個form里面,這樣的操作對文檔化也很有幫助。
注意這不會自動添加 HTML 標簽。需要你在 help_text 包含自己需要的格式。例如:
help_text="Please use the following format: <em>YYYY-MM-DD</em>."
另外, 你可以使用簡單文本和django.utils.html.escape()以避免任何HTML特定的字符.
請確保你所使用的help text能夠避免那些由不受信任的用戶進行的跨站點腳本攻擊。
primary_key(主鍵)
指定該字段為數(shù)據(jù)庫中的主鍵,以代替django自動添加的ID屬性
primary_key=True 暗含著null=False 和unique=True. 一個對象上只能擁有一個主鍵,如果嘗試修改主鍵會創(chuàng)建一個新的而不是覆蓋舊的。
unique(唯一)
如果設(shè)置為True則這個字段在表中必須唯一,否則會拋出一個
django.db.IntegrityError異常
除了ManyToManyField、OneToOneField和FileField 以外的其他字段類型都可以使用這個設(shè)置
指定此選項不必再指定 db_index 因為unique本身就意味著一個索引的創(chuàng)建
unique_for_data(指定日期內(nèi)唯一)
當設(shè)置它為DateField 和 DateTimeField 字段的名稱時,表示要求該字段對于相應(yīng)的日期字段值是唯一的.
例如,你有一個title 字段設(shè)置unique_for_date="pub_date",那么Django 將不允許兩個記錄具有相同的title 和pub_date
即時是 DateTimeField 字段 也只會驗證日期而不會考慮時間
unique_for_month(指定月份唯一)
nique_for_year(指定年份唯一)
verbose_name(后臺管理界面上顯示的)
后臺管理界面上顯示比較貼近理解的字段名,默認是字段名(將下劃線替換為空格)