Django 版本:1.11
在创建 Django 项目时,有时为了需求,一般都会自定义 User 表,因为 Django 的 User 表可能没有我们需要的字段,这时候我们就得重写 User 模型了。
首先在 app 中的 models 中设计表,但是需要添加:
from django.contrib.auth.models import AbstructUser
class UserProfile(AbstructUser):
pass
# class 的名称可以自定义修改
然后在 seeting.py
中注册 app,并添加
AUTH_USER_MODEL = 'users.UserProfile'
# app 名称加 模型名称
这时候如果已经在 Django 中运行过 makemigrations
和 migrate
,那么再次运行这两条命令会得到一个错误
django.db.migrations.exceptions.InconsistentMigrationHistory
意思就是 migrate
的时候和原有表冲突了,这时只能删除数据库中所有表了,然后再重新 migrate
一下,对于某些数据量小来说还可以,但是这种方法还是太粗暴。我也暂时没有找到更好的解决办法。请同学帮忙指点一下。
其实还有一种方法,那就是在创建 Django 项目时,等等到 User 表设计完成后再运行
,akemigrations
和migrate
,这样就不会有冲突了,这个问题在 Django 1.9 版本里好像没有。一定要牢记这一点。
网友评论