Django 自定义 User 模型

2018-03-08  本文已影响0人  vckah

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 中运行过 makemigrationsmigrate,那么再次运行这两条命令会得到一个错误

django.db.migrations.exceptions.InconsistentMigrationHistory

意思就是 migrate 的时候和原有表冲突了,这时只能删除数据库中所有表了,然后再重新 migrate 一下,对于某些数据量小来说还可以,但是这种方法还是太粗暴。我也暂时没有找到更好的解决办法。请同学帮忙指点一下。

其实还有一种方法,那就是在创建 Django 项目时,等等到 User 表设计完成后再运行 ,akemigrationsmigrate,这样就不会有冲突了,这个问题在 Django 1.9 版本里好像没有。一定要牢记这一点。

上一篇下一篇

猜你喜欢

热点阅读