美文网首页
Django 自定义 User 模型

Django 自定义 User 模型

作者: vckah | 来源:发表于2018-03-08 11:34 被阅读0次

    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 版本里好像没有。一定要牢记这一点。

    相关文章

      网友评论

          本文标题:Django 自定义 User 模型

          本文链接:https://www.haomeiwen.com/subject/kmoefftx.html