Python Django迁移错误-ValueError:模型引用无效';apps.auth.Permission';

Python Django迁移错误-ValueError:模型引用无效';apps.auth.Permission';,python,django,django-models,Python,Django,Django Models,当我运行pythonmanage.py makemigrations用户时 ValueError:模型引用“apps.auth.Permission”无效。字符串模型引用的格式必须为“app\u label.ModelName”。 我的django文件结构是 . ├── README.md ├── __init__.py ├── apps │   └── users │   ├── __init__.py │   ├── admin.py │   ├── apps.py

当我运行python
manage.py makemigrations用户时

ValueError:模型引用“apps.auth.Permission”无效。字符串模型引用的格式必须为“app\u label.ModelName”。

我的django文件结构是

.
├── README.md
├── __init__.py
├── apps
│   └── users
│       ├── __init__.py
│       ├── admin.py
│       ├── apps.py
│       ├── forms.py
│       ├── models.py
│       ├── tests.py
│       └── views.py
├── manage.py
├── siteconfig
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   ├── views.py
│   └── wsgi.py
└── virtualenv
settings.py
中的一些相关变量如下

设置.py users/models.py 用户/apps.py 完整堆栈跟踪是:

Traceback (most recent call last):
  File "/virtualenv/lib/python3.7/site-packages/django/db/models/utils.py", line 11, in make_model_tuple
    app_label, model_name = model.split(".")
ValueError: too many values to unpack (expected 2)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "manage.py", line 21, in <module>
    main()
  File "manage.py", line 17, in main
    execute_from_command_line(sys.argv)
  File "/virtualenv/lib/python3.7/site-packages/django/core/management/__init__.py", line 381, in execute_from_command_line
    utility.execute()
  File "/virtualenv/lib/python3.7/site-packages/django/core/management/__init__.py", line 375, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/virtualenv/lib/python3.7/site-packages/django/core/management/base.py", line 323, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/virtualenv/lib/python3.7/site-packages/django/core/management/base.py", line 364, in execute
    output = self.handle(*args, **options)
  File "/virtualenv/lib/python3.7/site-packages/django/core/management/base.py", line 83, in wrapped
    res = handle_func(*args, **kwargs)
  File "/virtualenv/lib/python3.7/site-packages/django/core/management/commands/makemigrations.py", line 168, in handle
    migration_name=self.migration_name,
  File "/virtualenv/lib/python3.7/site-packages/django/db/migrations/autodetector.py", line 43, in changes
    changes = self._detect_changes(convert_apps, graph)
  File "/virtualenv/lib/python3.7/site-packages/django/db/migrations/autodetector.py", line 128, in _detect_changes
    self.old_apps = self.from_state.concrete_apps
  File "/virtualenv/lib/python3.7/site-packages/django/db/migrations/state.py", line 214, in concrete_apps
    self.apps = StateApps(self.real_apps, self.models, ignore_swappable=True)
  File "/virtualenv/lib/python3.7/site-packages/django/db/migrations/state.py", line 273, in __init__
    self.render_multiple([*models.values(), *self.real_models])
  File "/virtualenv/lib/python3.7/site-packages/django/db/migrations/state.py", line 308, in render_multiple
    model.render(self)
  File "/virtualenv/lib/python3.7/site-packages/django/db/migrations/state.py", line 579, in render
    return type(self.name, bases, body)
  File "/virtualenv/lib/python3.7/site-packages/django/db/models/base.py", line 156, in __new__
    new_class.add_to_class(obj_name, obj)
  File "/virtualenv/lib/python3.7/site-packages/django/db/models/base.py", line 321, in add_to_class
    value.contribute_to_class(cls, name)
  File "/virtualenv/lib/python3.7/site-packages/django/db/models/fields/related.py", line 1576, in contribute_to_class
    super().contribute_to_class(cls, name, **kwargs)
  File "/virtualenv/lib/python3.7/site-packages/django/db/models/fields/related.py", line 318, in contribute_to_class
    lazy_related_operation(resolve_related_class, cls, self.remote_field.model, field=self)
  File "/virtualenv/lib/python3.7/site-packages/django/db/models/fields/related.py", line 80, in lazy_related_operation
    return apps.lazy_model_operation(partial(function, **kwargs), *model_keys)
  File "/virtualenv/lib/python3.7/site-packages/django/db/models/fields/related.py", line 78, in <genexpr>
    model_keys = (make_model_tuple(m) for m in models)
  File "/virtualenv/lib/python3.7/site-packages/django/db/models/utils.py", line 20, in make_model_tuple
    "must be of the form 'app_label.ModelName'." % model
ValueError: Invalid model reference 'apps.auth.Permission'. String model references must be of the form 'app_label.ModelName'.
回溯(最近一次呼叫最后一次):
文件“/virtualenv/lib/python3.7/site packages/django/db/models/utils.py”,第11行,在make\u model\u元组中
应用程序标签,型号名称=model.split(“.”)
ValueError:要解压缩的值太多(应为2个)
在处理上述异常期间,发生了另一个异常:
回溯(最近一次呼叫最后一次):
文件“manage.py”,第21行,在
main()
文件“manage.py”,第17行,主
从命令行(sys.argv)执行命令
文件“/virtualenv/lib/python3.7/site packages/django/core/management/_init__.py”,第381行,从命令行执行
utility.execute()
文件“/virtualenv/lib/python3.7/site packages/django/core/management/_init__.py”,执行中第375行
self.fetch_命令(子命令)。从_argv(self.argv)运行_
文件“/virtualenv/lib/python3.7/site packages/django/core/management/base.py”,第323行,在运行中,来自
self.execute(*args,**cmd_选项)
文件“/virtualenv/lib/python3.7/site packages/django/core/management/base.py”,执行中第364行
输出=self.handle(*args,**选项)
文件“/virtualenv/lib/python3.7/site-packages/django/core/management/base.py”,第83行,包装
res=句柄函数(*args,**kwargs)
handle中的文件“/virtualenv/lib/python3.7/site packages/django/core/management/commands/makemigrations.py”,第168行
migration\u name=self.migration\u name,
文件“/virtualenv/lib/python3.7/site packages/django/db/migrations/autodetector.py”,第43行,在更改中
更改=自我。检测更改(转换应用程序、图形)
文件“/virtualenv/lib/python3.7/site packages/django/db/migrations/autodetector.py”,第128行,位于“检测更改”
self.old_apps=self.from_state.concrete_apps
具体应用程序中的文件“/virtualenv/lib/python3.7/site packages/django/db/migrations/state.py”,第214行
self.apps=StateApps(self.real\u apps、self.models、ignore\u swappable=True)
文件“/virtualenv/lib/python3.7/site packages/django/db/migrations/state.py”,第273行,在__
self.render_多个([*models.values(),*self.real_models])
文件“/virtualenv/lib/python3.7/site packages/django/db/migrations/state.py”,第308行,在render_multiple中
model.render(self)
文件“/virtualenv/lib/python3.7/site packages/django/db/migrations/state.py”,第579行,在render中
返回类型(self.name、base、body)
文件“/virtualenv/lib/python3.7/site packages/django/db/models/base.py”,第156行,新__
新建_类。将_添加到_类(obj_名称,obj)
文件“/virtualenv/lib/python3.7/site packages/django/db/models/base.py”,第321行,在add_to_类中
值。贡献给类(cls,名称)
文件“/virtualenv/lib/python3.7/site packages/django/db/models/fields/related.py”,第1576行,在contribute_to_类中
super().为类贡献(cls,name,**kwargs)
文件“/virtualenv/lib/python3.7/site packages/django/db/models/fields/related.py”,第318行,在contribute\u to\u类中
惰性\u相关\u操作(解析\u相关\u类,cls,self.remote\u field.model,field=self)
文件“/virtualenv/lib/python3.7/site packages/django/db/models/fields/related.py”,第80行,在lazy_-related_操作中
return apps.lazy\u model\u操作(部分(函数,**kwargs),*model\u键)
文件“/virtualenv/lib/python3.7/site packages/django/db/models/fields/related.py”,第78行,在
模型密钥=(为模型中的m生成模型元组(m)
文件“/virtualenv/lib/python3.7/site packages/django/db/models/utils.py”,第20行,在make\u model\u元组中
“必须为'app_label.ModelName'格式。%model”
ValueError:模型引用“apps.auth.Permission”无效。字符串模型引用的格式必须为“app_label.ModelName”。

通过卸载并重新安装Django解决了这一问题


我认为它与我之前删除的名为“auth”的应用程序有关。

这通过卸载并重新安装Django解决了问题


我认为这与我之前删除的名为“auth”的应用程序有关。

您是否在代码库中的任何位置使用
apps.auth
?请注意,使用
sys.path.insert(0,os.path.join(PROJECT_ROOT,'apps'))
apps
添加到Python路径不是一个好主意。这意味着您可以使用
导入应用程序导入
用户
应用程序。用户
导入用户
,这可能会导致错误。在包含
manage.py
的目录中,通常不需要
\uuuu init\uuuuuuuuuuuuuuuuuupy
。我的代码中不使用apps.auth。我确实使用了
django.contrib.auth
您是否在代码库的任何地方使用了
apps.auth
?请注意,使用
sys.path.insert(0,os.path.join(PROJECT_ROOT,'apps'))
apps
添加到Python路径不是一个好主意。这意味着您可以使用
导入应用程序导入
用户
应用程序。用户
导入用户
,这可能会导致错误。在包含
manage.py
的目录中,通常不需要
\uuuu init\uuuuuuuuuuuuuuuuuupy
。我的代码中不使用apps.auth。我确实使用了
django.contrib.auth
from django.contrib.auth.models import AbstractUser
from django.db import models
from django.utils.translation import gettext as _

class CustomUser(AbstractUser):
    kindle_email_address = models.EmailField(_('kindle email address'))
from django.apps import AppConfig


class UsersConfig(AppConfig):
    name = 'apps.users'
Traceback (most recent call last):
  File "/virtualenv/lib/python3.7/site-packages/django/db/models/utils.py", line 11, in make_model_tuple
    app_label, model_name = model.split(".")
ValueError: too many values to unpack (expected 2)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "manage.py", line 21, in <module>
    main()
  File "manage.py", line 17, in main
    execute_from_command_line(sys.argv)
  File "/virtualenv/lib/python3.7/site-packages/django/core/management/__init__.py", line 381, in execute_from_command_line
    utility.execute()
  File "/virtualenv/lib/python3.7/site-packages/django/core/management/__init__.py", line 375, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/virtualenv/lib/python3.7/site-packages/django/core/management/base.py", line 323, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/virtualenv/lib/python3.7/site-packages/django/core/management/base.py", line 364, in execute
    output = self.handle(*args, **options)
  File "/virtualenv/lib/python3.7/site-packages/django/core/management/base.py", line 83, in wrapped
    res = handle_func(*args, **kwargs)
  File "/virtualenv/lib/python3.7/site-packages/django/core/management/commands/makemigrations.py", line 168, in handle
    migration_name=self.migration_name,
  File "/virtualenv/lib/python3.7/site-packages/django/db/migrations/autodetector.py", line 43, in changes
    changes = self._detect_changes(convert_apps, graph)
  File "/virtualenv/lib/python3.7/site-packages/django/db/migrations/autodetector.py", line 128, in _detect_changes
    self.old_apps = self.from_state.concrete_apps
  File "/virtualenv/lib/python3.7/site-packages/django/db/migrations/state.py", line 214, in concrete_apps
    self.apps = StateApps(self.real_apps, self.models, ignore_swappable=True)
  File "/virtualenv/lib/python3.7/site-packages/django/db/migrations/state.py", line 273, in __init__
    self.render_multiple([*models.values(), *self.real_models])
  File "/virtualenv/lib/python3.7/site-packages/django/db/migrations/state.py", line 308, in render_multiple
    model.render(self)
  File "/virtualenv/lib/python3.7/site-packages/django/db/migrations/state.py", line 579, in render
    return type(self.name, bases, body)
  File "/virtualenv/lib/python3.7/site-packages/django/db/models/base.py", line 156, in __new__
    new_class.add_to_class(obj_name, obj)
  File "/virtualenv/lib/python3.7/site-packages/django/db/models/base.py", line 321, in add_to_class
    value.contribute_to_class(cls, name)
  File "/virtualenv/lib/python3.7/site-packages/django/db/models/fields/related.py", line 1576, in contribute_to_class
    super().contribute_to_class(cls, name, **kwargs)
  File "/virtualenv/lib/python3.7/site-packages/django/db/models/fields/related.py", line 318, in contribute_to_class
    lazy_related_operation(resolve_related_class, cls, self.remote_field.model, field=self)
  File "/virtualenv/lib/python3.7/site-packages/django/db/models/fields/related.py", line 80, in lazy_related_operation
    return apps.lazy_model_operation(partial(function, **kwargs), *model_keys)
  File "/virtualenv/lib/python3.7/site-packages/django/db/models/fields/related.py", line 78, in <genexpr>
    model_keys = (make_model_tuple(m) for m in models)
  File "/virtualenv/lib/python3.7/site-packages/django/db/models/utils.py", line 20, in make_model_tuple
    "must be of the form 'app_label.ModelName'." % model
ValueError: Invalid model reference 'apps.auth.Permission'. String model references must be of the form 'app_label.ModelName'.