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