Django LookupError:App';用户';不';我没有';用户';模型

Django LookupError:App';用户';不';我没有';用户';模型,django,Django,Django 1.9.7 我正在使用pyenv virtualenv autoenv 我想扩展用户模型,所以我决定使用AbstractUser (AbstractUser的类METAabstract=True,所以我不能生成表,但继承类可以生成表,对不对??) 无论如何 (wef为项目名称) 我制作应用程序wef/users/models/\uuuuu init\uuuuuu.py from .user import User from django.contrib.auth.models i

Django 1.9.7 我正在使用pyenv virtualenv autoenv

我想扩展用户模型,所以我决定使用
AbstractUser

(AbstractUser的
类META
abstract=True,所以我不能生成表,但继承类可以生成表,对不对??)

无论如何

(wef为项目名称) 我制作应用程序
wef/users/models/\uuuuu init\uuuuuu.py

from .user import User
from django.contrib.auth.models import AbstractUser

from django.db import models


class User(AbstractUser):

    phonenumber = models.CharField(
            max_length = 11,
            blank = True,
            null = True
            )
wef/users/models/user.py中

from .user import User
from django.contrib.auth.models import AbstractUser

from django.db import models


class User(AbstractUser):

    phonenumber = models.CharField(
            max_length = 11,
            blank = True,
            null = True
            )
我在settings.py中添加
用户
应用程序

INSTALLED_APPS = [
    [...]
    'users',
]

AUTH_USER_MODEL = 'users.User'
所以,我认为当我进行迁移时,迁移

django将制作关于用户的模型表


python wef/manage.py makemigrations用户

它显示了错误

Traceback (most recent call last):
  File "/Users/hanminsoo/.pyenv/versions/study_alone/lib/python3.5/site-packages/django/apps/config.py", line 163, in get_model
return self.models[model_name.lower()]
KeyError: 'user'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
  File "/Users/hanminsoo/.pyenv/versions/study_alone/lib/python3.5/site-packages/django/core/management/__init__.py", line 353, in execute_from_command_line
utility.execute()
  File "/Users/hanminsoo/.pyenv/versions/study_alone/lib/python3.5/site-packages/django/core/management/__init__.py", line 345, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/Users/hanminsoo/.pyenv/versions/study_alone/lib/python3.5/site-packages/django/core/management/base.py", line 348, in run_from_argv
self.execute(*args, **cmd_options)
  File "/Users/hanminsoo/.pyenv/versions/study_alone/lib/python3.5/site-packages/django/core/management/base.py", line 398, in execute
self.check()
  File "/Users/hanminsoo/.pyenv/versions/study_alone/lib/python3.5/site-packages/django/core/management/base.py", line 426, in check
include_deployment_checks=include_deployment_checks,
  File "/Users/hanminsoo/.pyenv/versions/study_alone/lib/python3.5/site-packages/django/core/checks/registry.py", line 75, in run_checks
new_errors = check(app_configs=app_configs)
  File "/Users/hanminsoo/.pyenv/versions/study_alone/lib/python3.5/site-packages/django/contrib/auth/checks.py", line 12, in check_user_model
cls = apps.get_model(settings.AUTH_USER_MODEL)
  File "/Users/hanminsoo/.pyenv/versions/study_alone/lib/python3.5/site-packages/django/apps/registry.py", line 197, in get_model
return self.get_app_config(app_label).get_model(model_name.lower())
  File "/Users/hanminsoo/.pyenv/versions/study_alone/lib/python3.5/site-packages/django/apps/config.py", line 166, in get_model
"App '%s' doesn't have a '%s' model." % (self.label, model_name))
LookupError: App 'users' doesn't have a 'user' model.
回溯(最近一次呼叫最后一次):
get_模型中的文件“/Users/hanminsoo/.pyenv/versions/study_only/lib/python3.5/site packages/django/apps/config.py”,第163行
返回self.models[model_name.lower()]
KeyError:'用户'
在处理上述异常期间,发生了另一个异常:
回溯(最近一次呼叫最后一次):
文件“manage.py”,第10行,在
从命令行(sys.argv)执行命令
文件“/Users/hanminsoo/.pyenv/versions/study_only/lib/python3.5/site packages/django/core/management/_init__.py”,第353行,从命令行执行
utility.execute()
文件“/Users/hanminsoo/.pyenv/versions/study_only/lib/python3.5/site packages/django/core/management/_init__.py”,执行中第345行
self.fetch_命令(子命令)。从_argv(self.argv)运行_
文件“/Users/hanminsoo/.pyenv/versions/study_only/lib/python3.5/site packages/django/core/management/base.py”,第348行,从_argv运行
self.execute(*args,**cmd_选项)
文件“/Users/hanminsoo/.pyenv/versions/study_only/lib/python3.5/site packages/django/core/management/base.py”,第398行,在execute中
self.check()
文件“/Users/hanminsoo/.pyenv/versions/study_only/lib/python3.5/site packages/django/core/management/base.py”,第426行,选中
包括部署检查=包括部署检查,
文件“/Users/hanminsoo/.pyenv/versions/study_only/lib/python3.5/site packages/django/core/checks/registry.py”,第75行,运行检查
新建错误=检查(应用程序配置=应用程序配置)
文件“/Users/hanminsoo/.pyenv/versions/study_only/lib/python3.5/site packages/django/contrib/auth/checks.py”,check_user_模型第12行
cls=apps.get\u model(settings.AUTH\u USER\u model)
get_模型中的文件“/Users/hanminsoo/.pyenv/versions/study_only/lib/python3.5/site packages/django/apps/registry.py”,第197行
返回self.get\u app\u config(app\u标签)。get\u model(model\u name.lower())
get_模型第166行的文件“/Users/hanminsoo/.pyenv/versions/study_only/lib/python3.5/site packages/django/apps/config.py”
应用程序“%s”没有“%s”模型。“%(self.label,模型名称))
LookupError:应用程序“用户”没有“用户”模型。
我不明白为什么django找不到用户。用户模型

当我更改'AUTH\u USER\u MODEL=UserAAA'

显示错误(大写字母改为小写)


LookupError:应用程序“用户”没有“用户AAA”模型。

我找不到我的问题
请有人帮帮我。。ㅠ_ㅠ

我认为您已经创建了数据库模式。从:

更改AUTH\u USER\u模型对数据库结构有很大影响。 它会更改可用的表,并将影响 构造外键和多对多关系。如果你 要设置AUTH_USER_模型,应在创建任何 迁移或第一次运行manage.py migrate

不支持在创建表后更改此设置 通过makemigrations,将导致您必须手动修复 架构,从旧用户表移植数据,可能还需要手动移植 重新应用一些迁移


我还有几个选择来解决这个问题

  • 如果确实要从contrib.auth迁移
  • db_table='auth_user'
    放入模型的元中,以使用现有表,而不破坏其他关系。在没有任何自定义字段的情况下进行迁移,然后进行模型更改和另一次迁移

  • 我将models.py移动到models/init.py

  • 在这种情况下,我需要在导入任何其他名为
    get\u user\u model()

    from .user import User
    

    另外,在创建自定义用户模型后删除项目中的所有“用户”导入

    您的包真的是“模式”而不是“模型”吗?哦,对不起,编辑我的错误,但它也有相同的错误,请有人帮助我,我真的需要任何人的帮助谢谢@Gupta,我将尝试删除db.sqlite3和
    manage.py reset\u db
    我也有同样的问题,但我一直使用这种自定义用户模型。我刚从
    models.py
    移动到
    models/\uuuu init\uuuu.py
    在这种情况下会出现什么问题?所以我可以回答我自己的问题,我的
    \uuu init\uuuuuu.py
    需要从中
    用户导入用户
    ,然后再导入调用
    获取用户模型()
    的任何其他模型,我很高兴我看完了评论,谢谢:)。另外,我想你可以考虑把这个作为答案。AaronMcMillin@AaronMcMillin这是解决方案,但我无法解释原因!这值得一个解释,因为它听起来像是一个bug的解决方法。谢谢