Django模型定义参考
生活随笔
收集整理的這篇文章主要介紹了
Django模型定义参考
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
字段
對字段名稱的限制
- 字段名不能是Python的保留字,否則會導致語法錯誤
- 字段名不能有多個連續下劃線,否則影響ORM查詢操作
Django模型字段類
| AutoField | 自增ID字段 |
| BigIntegerField | 64位有符號整數 |
| BinaryField | 存儲二進制數據的字段,對應Python的bytes類型 |
| BooleanField | 存儲True或False |
| CharField | 長度較小的字符串 |
| DateField | 存儲日期,有auto_now和auto_now_add屬性 |
| DateTimeField | 存儲日期和日期,兩個附加屬性同上 |
| DecimalField | 存儲固定精度小數,有max_digits(有效位數)和decimal_places(小數點后面)兩個必要的參數 |
| DurationField | 存儲時間跨度 |
| EmailField | 與CharField相同,可以用EmailValidator驗證 |
| FileField | 文件上傳字段 |
| FloatField | 存儲浮點數 |
| ImageField | 其他同FileFiled,要驗證上傳的是不是有效圖像 |
| IntegerField | 存儲32位有符號整數。 |
| GenericIPAddressField | 存儲IPv4或IPv6地址 |
| NullBooleanField | 存儲True、False或null值 |
| PositiveIntegerField | 存儲無符號整數(只能存儲正數) |
| SlugField | 存儲slug(簡短標注) |
| SmallIntegerField | 存儲16位有符號整數 |
| TextField | 存儲數據量較大的文本 |
| TimeField | 存儲時間 |
| URLField | 存儲URL的CharField |
| UUIDField | 存儲全局唯一標識符 |
字段屬性
通用字段屬性
| null | 數據庫中對應的字段是否允許為NULL,默認為False |
| blank | 后臺模型管理驗證數據時,是否允許為NULL,默認為False |
| choices | 設定字段的選項,各元組中的第一個值是設置在模型上的值,第二值是人類可讀的值 |
| db_column | 字段對應到數據庫表中的列名,未指定時直接使用字段的名稱 |
| db_index | 設置為True時將在該字段創建索引 |
| db_tablespace | 為有索引的字段設置使用的表空間,默認為DEFAULT_INDEX_TABLESPACE |
| default | 字段的默認值 |
| editable | 字段在后臺模型管理或ModelForm中是否顯示,默認為True |
| error_messages | 設定字段拋出異常時的默認消息的字典,其中的鍵包括null、blank、invalid、invalid_choice、unique和unique_for_date |
| help_text | 表單小組件旁邊顯示的額外的幫助文本。 |
| primary_key | 將字段指定為模型的主鍵,未指定時會自動添加AutoField用于主鍵,只讀。 |
| unique | 設置為True時,表中字段的值必須是唯一的 |
| verbose_name | 字段在后臺模型管理顯示的名稱,未指定時使用字段的名稱 |
ForeignKey屬性
- CASCADE:級聯刪除。
- PROTECT:拋出ProtectedError異常,阻止刪除引用的對象。
- SET_NULL:把外鍵設置為null,當null屬性被設置為True時才能這么做。
- SET_DEFAULT:把外鍵設置為默認值,提供了默認值才能這么做。
ManyToManyField屬性
模型元數據選項
| abstract | 設置為True時模型是抽象父類 |
| app_label | 如果定義模型的應用不在INSTALLED_APPS中可以用該屬性指定 |
| db_table | 模型使用的數據表名稱 |
| db_tablespace | 模型使用的數據表空間 |
| default_related_name | 關聯對象回指這個模型時默認使用的名稱,默認為<model_name>_set |
| get_latest_by | 模型中可排序字段的名稱。 |
| managed | 設置為True時,Django在遷移中創建數據表并在執行flush管理命令時把表移除 |
| order_with_respect_to | 標記對象為可排序的 |
| ordering | 對象的默認排序 |
| permissions | 創建對象時寫入權限表的額外權限 |
| default_permissions | 默認為('add', 'change', 'delete') |
| unique_together | 設定組合在一起時必須獨一無二的字段名 |
| index_together | 設定一起建立索引的多個字段名 |
| verbose_name | 為對象設定人類可讀的名稱 |
| verbose_name_plural | 設定對象的復數名稱 |
查詢參考
按字段查找可以用的條件:
轉載于:https://www.cnblogs.com/virus1996/p/9370205.html
總結
以上是生活随笔為你收集整理的Django模型定义参考的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: junit与spring-data-re
- 下一篇: 不可预料的恋人剧情介绍