12.字段選項

[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(后臺管理界面上顯示的)

后臺管理界面上顯示比較貼近理解的字段名,默認是字段名(將下劃線替換為空格)

validators(驗證器,待完善)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,697評論 19 139
  • Django Model 定義語法 版本:1.7主要來源:https://docs.djangoproject.c...
    羅田閱讀 31,256評論 2 42
  • 模型是關(guān)于數(shù)據(jù)的單一的、最終的數(shù)據(jù)源。它包含存儲的數(shù)據(jù)的基本字段和行為。通常,每個模型映射到單個數(shù)據(jù)庫表。 每一個...
    低吟淺唱1990閱讀 302評論 0 0
  • 點擊查看原文 Web SDK 開發(fā)手冊 SDK 概述 網(wǎng)易云信 SDK 為 Web 應(yīng)用提供一個完善的 IM 系統(tǒng)...
    layjoy閱讀 14,443評論 0 15
  • 賣火柴的小女孩,在最后一根火柴熄滅的時候,被一對好心的夫婦遇見了,他們給她戴上了溫暖柔軟的大圍巾,把她摟在懷里,把...
    姚葡萄閱讀 290評論 0 0

友情鏈接更多精彩內(nèi)容