Python Django迁移错误-ValueError:模型引用无效';apps.auth.Permission';
当我运行pythonPython 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
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'.