Django框架模型之models常用字段、属性及异常处理

官方文档

https://docs.djangoproject.com/en/3.0/ref/models/fields/#django.db.models.Field

Django框架模型models 常用字段

AutoField

自增列 = int(11)
如果没有的话,默认会生成一个名称为 id 的列
如果要显式的自定义一个自增列,必须设置primary_key=True

CharField

字符串字段
必须设置max_length参数

TextField

大文本字段

BooleanField

正确/错误字段
默认值是None
default=False,default=Ture

DateField

日期类型 date( ‘1000-01-01’ to ‘9999-12-31’ 只有日期部分,没有时间部分)
DateField.auto_now:保存时自动设置该字段为现在日期,最后修改日期
DateField.auto_now_add:当该对象第一次被创建是自动设置该字段为现在日期,创建日期

DateTimeField

日期时间类型 datetime(‘1000-01-01 00:00:00’ to ‘9999-12-31 23:59:59’ 时间格式为 Y YYY-MM-DD hh:mm:ss ,默认精确到秒)
同DateField的参数 

EmailField

一个带有检查 Email 合法性的 CharField

Django框架模型models 字段常用参数

null

如果是True,Django会在数据库中将此字段的值置为NULL,默认值是False

blank

如果为True时django的 Admin 中添加数据时可允许空值,可以不填。如果为False则必须填。默认是False。
null纯粹是与数据库有关系的。而blank是与页面必填项验证有关的

primary_key = False

主键,对AutoField设置主键后,就会代替原来的自增 id 列

auto_now 和 auto_now_add

auto_now 自动创建—无论添加或修改,都是当前操作的时间
auto_now_add 自动创建—永远是创建时的时间

choices

一个二维的元组被用作choices,如果这样定义,Django会select box代替普通的文本框,
并且限定choices的值是元组中的值
GENDER_CHOICE = (
(u’M’, u’Male’),
(u’F’, u’Female’),
)
gender = models.CharField(max_length=2,choices = GENDER_CHOICE)

max_length

字段长度

default

默认值

verbose_name 

 
Admin中字段的显示名称,如果不设置该参数时,则与属性名。

db_column

数据库中的字段名称

unique=True

不允许重复

db_index = True 

 
数据库索引

editable=True

在Admin里是否可编辑

error_messages=None

错误提示

auto_created=False

自动创建

help_text

  
在Admin中提示帮助信息

validators=[]

验证器

upload-to

文件上传时的保存上传文件的目录

常见异常处理

web.UserInfo.photo: (fields.E210) Cannot use ImageField because Pillow is not installed.
HINT: Get Pillow at https://pypi.python.org/pypi/Pillow or run command “pip install Pillow”.
原因:
这是因为使用了ImageField()字段,该字段是直接在数据库中存储图片的,数据库中实际存储时要使用python的Pillow模块对图片进行处理后才能存储进去。因此因需使用pip install Pillow 安装该模块即可解决该报错。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注