1. AbstractUser(内置用户模型类)的使用
### 需要在settings.py中添加如下:
AUTH_USER_MODEL = 'app.MyUser'
说明:这是为了覆盖django默认的User model;app即模型所属app,MyUser即AbstractUser实现类。
2.on_delete选项
从django3.0后,OneToOne和ForeignKey必须要添加on_delete选项,其可用选项值如下:
models.CASCADE:级联删除策略
models.PROTECT:保护策略,删除抛出ProtectedError错误
models.SET_NULL:设置空策略,将外键关联字段值设为空(前提其blank=True、null=True)
models.SET_DEFAULT:设置默认值策略,配合default选项
models.SET():自定义模型实例值
models.DO_NOTHING:不做任何事,将会影响数据库的完整性
3. OneToOne和ForeignKey主要的两个选项
to:要关联到的模型类
to_field:要关联到的模型类的字段
4. ManyToMany的主要选项
to:要关联到的模型类
through:要通过映射多对多关系的关系表模型类
through_fields:要通过映射多对多关系的关系表模型类的字段,值为tuple或list类型
5. 常用的模型字段
### 前言:这里仅对常用的模型字段进行概要,具体需要参考文档学习,这里给出链接模型字段参考 | Django 文档 | Django (djangoproject.com)
### AutoField:
自增整型,常用于主键字段
使用选项primary_key=True使其为主键字段
### CharField:
变长字符串类型,常用于短文本
必须指定max_length选项
### DatetimeField
日期时间类型,常用于模型信息(创建时间、修改时间)
自动记录模型实例的创建时间,令选项auto_now_add=True即可
自动记录模型实例的更新时间,令auto_now=True即可
### IntegerField和TextField
IntegerField:常用整型
TextField:常用文本型
### 关系字段(前面提到了,这里只总括以下)
OneToOne:适用于一对一关系
ForeignKey:适用于一对多关系
ManyToMany:适用于多对多关系
6.模型字段通用的选项
### null:
bool,是否可存储数据库空值为null(数据库存储相关)
### blank:
bool,是否该字段允许为空(模型验证相关)
### choices:
[(opt1,opt1_desc),(opt2_value,opt2_desc),...]形式,用于提供字段值选项
### db_column:
str,指定模型字段对应数据库的列名
### db_index:
bool,是否为该字段在数据库创建数据库索引
### default:
参考字段类型,设置字段默认值
### editable:
bool,在管理后台对该字段数据是否可编辑
### help_text
str,在管理后台光标聚焦到该字段上的对该字段描述的提示文本
### primary_key
bool,是否设置该字段为主键字段
### unique
bool,是否设置该字段唯一
### verbose_name
str,字段详细名称,可用于管理后台
### 省略介绍
radio_admin、unique_for_date、unique_for_year、unique_for_month