python项目_创建自定义用户模型类

1.创建子应用users,并在配置文件中注册子应用users应用

#在创建子应用下的models文件中添加模型

from
django.db import models # Create your models here. from django.contrib.auth.models import AbstractUser class User(AbstractUser): """自定义用户""" mobile = models.CharField(max_length=15, verbose_name="手机号码") avatar = models.ImageField(upload_to="avatar",null=True,blank=True, verbose_name="用户头像") wechat = models.CharField(max_length=50,null=True,blank=True, verbose_name="微信号") class Meta: db_table = "ly_user" verbose_name = "用户信息" verbose_name_plural = verbose_name def __str__(self): return self.username

2.在settings.dev文件中进行设置,(目的是被django认证系统识别)

AUTH_USER_MODEL = 'users.User'
#users 是子应用的名字

3.执行数据迁移

python manage.py makemigrations
python manage.py migrate

4.如果在第一次数据迁移以后,才设置AUTH_USER_MODEL自定义用户模型,则会报错。解决方案如下:

0. 先把现有的数据库导出备份,然后清掉数据库中所有的数据表。
1. 把开发者创建的所有子应用下面的migrations目录下除了__init__.py以外的所有迁移文件,只要涉及到用户的,一律删除
2. 把django.contrib.admin.migrations目录下除了__init__.py以外的所有迁移文件,全部删除。
3. 把django.contrib.auth.migrations目录下除了__init__.py以外的所有迁移文件,全部删除。
4. 把reversion.migrations目录下除了__init__.py以外的所有迁移文件,全部删除。
5. 把xadmin.migrations目录下除了__init__.py以外的所有迁移文件,全部删除。
6. 接下来,执行数据迁移,回顾第0步中的数据,以后如果要修改用户相关数据,不需要重复本次操作,直接数据迁移即可。

 

posted @ 2020-06-20 11:00  jalen-tian  阅读(532)  评论(0编辑  收藏  举报