问题描述
实际项目开发中,auth_user表的字段往往是不符合需求的,过少,比如,我们还需要加入birth,sex,age,image,phone等字段,就必须要对User
表进行重构,但User
表是继承AbstractUser
,所以直接构造新的用户表继承AbstractUser
解决方法
1 :setting 设置
在setting.py 中增加一行,需要指定对应的app的对应表
#表示哪张表继承了auth_user表(在给auth_user添加字段用到)
# authentication为你相应app的名, UserInfo为你重构的用户表模型类
AUTH_USER_MODEL="authentication.UserInfo"
2 :增加表字段
from django.contrib.auth.models import AbstractUser
class UserInfo(AbstractUser):
phone = models.CharField(max_length=11, blank=True)
sex = models.CharField(max_length=1, choices=SEX_CHOICES, blank=True)
birth = models.DateField(blank=True, auto_now_add=True)
3:数据库迁移
进行迁移前,记得删除migrations文件下的001_init.py文件
python manage.py makemigrations #同步
python manage.py migrate
4 :效果
auth_user 表名被改为 authentication_userinfo。且添加了三个字段