【问题标题】:Django: when creating custom user, ValueError: Dependency on unknown appDjango:创建自定义用户时,ValueError:对未知应用程序的依赖
【发布时间】:2015-11-10 01:04:10
【问题描述】:

我正在使用 Python 3.4.3 和 Django 1.8 构建一个全新的 Web 项目,到目前为止没有进行任何迁移。对于该项目,我正在一个名为users 的应用程序中创建一个继承自AbstractBaseUser 的自定义用户。如doc 中所述,在创建任何迁移之前,我还正确地将AUTH_USER_MODEL 引用到settings.py 中的自定义用户。

但是,当我尝试运行 python manage.py makemigrations userspython manage.py migrate 时,控制台会报告 ValueError: Dependency on unknown app: users

我很确定我的自定义用户模型代码是正确的,因为我遵循了文档的示例代码,还因为当我注释掉 AUTH_USER_MODEL 时,除了 Django 为默认用户模型创建表之外,其他一切都正常,这是预期的。

documentation 中提到:

您必须确保 AUTH_USER_MODEL 引用的模型是在其应用程序的第一次迁移中创建的(通常称为 0001_initial);否则,您将遇到依赖问题。

我不太确定这到底是什么意思。这是否意味着我必须为我的users 应用手动创建迁移?如果是这样,我应该怎么做?

非常感谢任何建议或重定向到可靠来源!非常感谢您!

【问题讨论】:

  • 你先运行 ./manage.py migrate 了吗?
  • 嗨@levi!非常感谢您的快速回复!文档说“如果你打算设置AUTH_USER_MODEL,你应该在创建任何迁移或第一次运行manage.py migrate之前设置它。”因此我没有先运行./manage.py migrate。那是我应该做的事情吗?但是,运行./manage.py migrate 会为默认用户模型创建表,这不是我想要的。我想我的问题是:如何在第一次迁移中创建模型而不为默认用户创建表?谢谢!

标签: python django django-authentication django-users django-custom-user


【解决方案1】:

所以在尝试了各种方法来解决问题后,我发现问题出在一个意外的错误上。在users 目录中,我已经删除了migrations 目录中的所有文件,包括它的__init__.py。如果没有__init__.py 文件,ValueError 将被抛出。如果您手动添加__init__.py 文件,一切都会像魅力一样工作。

对于有同样问题的人,祝你好运!

【讨论】:

    猜你喜欢
    • 2021-10-25
    • 2014-11-01
    • 2020-10-20
    • 2014-11-30
    • 1970-01-01
    • 2020-02-24
    • 1970-01-01
    • 1970-01-01
    • 2010-10-28
    相关资源
    最近更新 更多