提示:定義模型字段的類型
一、字段類型
常用字段
字段名 描述 備注 AutoField int 自增 必填參數 primary_key=True,無該字段時,django自動創建一個 BigAutoField,一個model不能有兩個AutoField字段(不建議手動指定主鍵) BooleanField 布爾 值為True,False NullBooleanField 布爾 值為Null,True,False 已棄用(BooleanField(null=True)) CharField 字符串 必須提供max_length參數 TextField 文本 IntegerField 整型 SmallIntegerField(短整型),BigIntegerField(長整型),PositiveIntegerField(正整型),PositiveSmallIntegerField(短正整型) DecimalField 10進制浮點數 max_digits表示總位數,decimal_places表示小數 FloatField 浮點數 DateField 日期(YYYY-MM-DD) auto_now:每次修改時修改為當前日期時間。auto_now_add:新創建對象時自動添加當前日期時間(相當于Python中的datetime.date的實例) DatetimeField 日期(YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ]) 相當于Python中的datetime.datetime實例 FileField 文件字段 數據庫本質為路徑保存 OneToOneField 關系字段 用于定義一對一關系 ForeignKey 關系字段 用來定義多對一關系 ManyToManyField 關系字段 用于定義多對多關系
二、字段屬性
參數 描述 備注 null True:允許存儲 NULL 值 默認False(控制數據庫存儲,是否允許存儲 NULL 值) blank True:允許為空字符串 默認False(控制表單驗證,是否允許在表單中留空) db_column 字段名稱 通常不需要手動指定 db_index True:創建索引 默認False default 默認值 primary_key True:主鍵 每個模型只能有一個字段設置 primary_key=True,通常 Django 會自動添加 AutoField 或 BigAutoField 作為主鍵 unique True:唯一值 默認False max_length 最大長度 max_digits 浮點型最大長度 decimal_places 小數點位數 auto_now 獲取的是當前時間 choices 序列 STATUS_CHOICES = [(0, ‘java’), (1, ‘python’)] (在表單中會顯示為下拉框) help_text 幫助文本 表單中顯示的幫助文本,用于提供字段的說明
三、元信息
ORM對應的類里面包含另一個Meta類,而Meta類封裝了一些數據庫的信息。主要字段如下:
參數 描述 db_table ORM在數據庫中的表名默認是 app_類名,可以通過db_table可以重寫表名 index_together 聯合索引 unique_together 聯合唯一索引 ordering 字段排序(設置該屬性,查詢到的結果才可以被reverse())