官方文档
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 安装该模块即可解决该报错。