Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django在移动到文件夹中时未发现模型_Python_Django - Fatal编程技术网

Python Django在移动到文件夹中时未发现模型

Python Django在移动到文件夹中时未发现模型,python,django,Python,Django,我以前的布局: project: app: models.py 现在是这样的: project: app: models: __init__.py model_name.py 因为我现在有更多的模型,所以我不得不把它们分开。 在project/app/models/\uuuu init\uuuuuuuupy内部,我已经导入了模型,因此我可以从app.models导入,而不是app.models.m

我以前的布局:

project:
    app:
        models.py
现在是这样的:

project:
    app:
        models:
            __init__.py
            model_name.py
因为我现在有更多的模型,所以我不得不把它们分开。 在
project/app/models/\uuuu init\uuuuuuuupy
内部,我已经导入了模型,因此我可以从
app.models
导入,而不是
app.models.model\u name
,但是我的
配置不正确

django.core.exceptions.ImproperlyConfigured: AUTH_USER_MODEL refers to model 'users.User' that has not been installed
settings.py:

APPS = [
    'comments',
    'forums',
    'notifications',
    'posts',
    'privatemessages',
    'profiles',
    'subforums',
    'summaryreports',
    'users',
]
用户应用程序布局:

users.models.init.py:

from users.models.user_backends import UserBackend
from users.models.users import User
users.apps.py:

from django.apps import AppConfig


class UsersConfig(AppConfig):
    name = 'users'
为什么

编辑:

在settings.py中,还尝试了:

APPS = [
    'comments.apps.CommentsConfig',
    'forums.apps.ForumsConfig',
    'notifications.apps.NotificationsConfig',
    'posts.apps.PostsConfig',
    'privatemessages.apps.PrivateMessagesConfig',
    'profiles.apps.ProfilesConfig',
    'subforums.apps.SubforumsConfig',
    'summaryreports.apps.SummaryreportsConfig',
    'users.apps.UsersConfig',
]
Django版本是3.1。Python 3.8.5。 WSGI和ASGI正确地指向settings.py

编辑2:

然后Django尝试导入每个应用程序的模型子模块(如果有)。 必须在应用程序的models.py或models/init.py中定义或导入所有模型。否则,此时可能无法完全填充应用程序注册表,这可能会导致ORM出现故障

*编辑3:完整堆栈跟踪:

django_1        | Watching for file changes with StatReloader
django_1        | Exception in thread django-main-thread:
django_1        | Traceback (most recent call last):
django_1        |   File "/usr/local/lib/python3.8/site-packages/django/apps/config.py", line 178, in get_model
django_1        |     return self.models[model_name.lower()]
django_1        | KeyError: 'user'
django_1        | 
django_1        | During handling of the above exception, another exception occurred:
django_1        | 
django_1        | Traceback (most recent call last):
django_1        |   File "/usr/local/lib/python3.8/site-packages/django/contrib/auth/__init__.py", line 157, in get_user_model
django_1        |     return django_apps.get_model(settings.AUTH_USER_MODEL, require_ready=False)
django_1        |   File "/usr/local/lib/python3.8/site-packages/django/apps/registry.py", line 210, in get_model
django_1        |     return app_config.get_model(model_name, require_ready=require_ready)
django_1        |   File "/usr/local/lib/python3.8/site-packages/django/apps/config.py", line 180, in get_model
django_1        |     raise LookupError(
django_1        | LookupError: App 'users' doesn't have a 'User' model.
django_1        | 
django_1        | During handling of the above exception, another exception occurred:
django_1        | 
django_1        | Traceback (most recent call last):
django_1        |   File "/usr/local/lib/python3.8/threading.py", line 932, in _bootstrap_inner
django_1        |     self.run()
django_1        |   File "/usr/local/lib/python3.8/threading.py", line 870, in run
django_1        |     self._target(*self._args, **self._kwargs)
django_1        |   File "/usr/local/lib/python3.8/site-packages/django/utils/autoreload.py", line 53, in wrapper
django_1        |     fn(*args, **kwargs)
django_1        |   File "/usr/local/lib/python3.8/site-packages/django/core/management/commands/runserver.py", line 110, in inner_run
django_1        |     autoreload.raise_last_exception()
django_1        |   File "/usr/local/lib/python3.8/site-packages/django/utils/autoreload.py", line 76, in raise_last_exception
django_1        |     raise _exception[1]
django_1        |   File "/usr/local/lib/python3.8/site-packages/django/core/management/__init__.py", line 357, in execute
django_1        |     autoreload.check_errors(django.setup)()
django_1        |   File "/usr/local/lib/python3.8/site-packages/django/utils/autoreload.py", line 53, in wrapper
django_1        |     fn(*args, **kwargs)
django_1        |   File "/usr/local/lib/python3.8/site-packages/django/__init__.py", line 24, in setup
django_1        |     apps.populate(settings.INSTALLED_APPS)
django_1        |   File "/usr/local/lib/python3.8/site-packages/django/apps/registry.py", line 114, in populate
django_1        |     app_config.import_models()
django_1        |   File "/usr/local/lib/python3.8/site-packages/django/apps/config.py", line 211, in import_models
django_1        |     self.models_module = import_module(models_module_name)
django_1        |   File "/usr/local/lib/python3.8/importlib/__init__.py", line 127, in import_module
django_1        |     return _bootstrap._gcd_import(name[level:], package, level)
django_1        |   File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
django_1        |   File "<frozen importlib._bootstrap>", line 991, in _find_and_load
django_1        |   File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
django_1        |   File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
django_1        |   File "<frozen importlib._bootstrap_external>", line 783, in exec_module
django_1        |   File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
django_1        |   File "/app/comments/models/__init__.py", line 1, in <module>
django_1        |     from comments.models.comments import Comment
django_1        |   File "/app/comments/models/comments.py", line 7, in <module>
django_1        |     from users.models import User
django_1        |   File "/app/users/models/__init__.py", line 1, in <module>
django_1        |     from users.models.user_backends import UserBackend
django_1        |   File "/app/users/models/user_backends.py", line 8, in <module>
django_1        |     from django.contrib.auth.backends import ModelBackend
django_1        |   File "/usr/local/lib/python3.8/site-packages/django/contrib/auth/backends.py", line 5, in <module>
django_1        |     UserModel = get_user_model()
django_1        |   File "/usr/local/lib/python3.8/site-packages/django/contrib/auth/__init__.py", line 161, in get_user_model
django_1        |     raise ImproperlyConfigured(
django_1        | django.core.exceptions.ImproperlyConfigured: AUTH_USER_MODEL refers to model 'users.User' that has not been installed
django|使用StatReloader监视文件更改
django_1 |线程django主线程中的异常:
django|u 1 |回溯(最近一次呼叫最后一次):
django_1|文件“/usr/local/lib/python3.8/site packages/django/apps/config.py”,第178行,在get_模型中
django_1|返回self.models[model_name.lower()]
django|u 1 |键错误:“用户”
django|u 1|
django_1 |在处理上述异常期间,发生了另一个异常:
django|u 1|
django|u 1 |回溯(最近一次呼叫最后一次):
django_1 | File“/usr/local/lib/python3.8/site packages/django/contrib/auth/uuuuu init_uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
django_1 |返回django_应用程序。获取模型(settings.AUTH_USER_模型,require_ready=False)
django_1|文件“/usr/local/lib/python3.8/site packages/django/apps/registry.py”,第210行,在get_模型中
django_1 | return app_config.get_model(model_name,require_ready=require_ready)
django_1|文件“/usr/local/lib/python3.8/site packages/django/apps/config.py”,第180行,在get_模型中
django|u 1 |升起LookupError(
django|u 1 | LookupError:应用程序“用户”没有“用户”模型。
django|u 1|
django_1 |在处理上述异常期间,发生了另一个异常:
django|u 1|
django|u 1 |回溯(最近一次呼叫最后一次):
django_1 |文件“/usr/local/lib/python3.8/threading.py”,第932行,在_bootstrap_inner中
django|u 1 | self.run()
django_1 |文件“/usr/local/lib/python3.8/threading.py”,第870行,运行中
django|u 1|self.|u target(*self._args,**self._kwargs)
django_1|文件“/usr/local/lib/python3.8/site packages/django/utils/autoreload.py”,第53行,在包装器中
django|u 1 | fn(*args,**kwargs)
django_1|文件“/usr/local/lib/python3.8/site packages/django/core/management/commands/runserver.py”,第110行,在内部运行
django_1 | autoreload.raise_last_exception()
django_1|文件“/usr/local/lib/python3.8/site packages/django/utils/autoreload.py”,第76行,在raise_last_异常中
django|u 1|raise|u异常[1]
django|u 1 | File“/usr/local/lib/python3.8/site packages/django/core/management/_init___;.py”,第357行,执行
django_1自动加载。检查_错误(django.setup)()
django_1|文件“/usr/local/lib/python3.8/site packages/django/utils/autoreload.py”,第53行,在包装器中
django|u 1 | fn(*args,**kwargs)
django_1 |文件“/usr/local/lib/python3.8/site packages/django/_init_uuuuuuuuuuuuuuuu.py”,第24行,在安装程序中
django_1| apps.populate(设置.已安装的_应用程序)
django_1 |文件“/usr/local/lib/python3.8/site packages/django/apps/registry.py”,第114行,填充
django_1| app_config.import_models()
django_1 |文件“/usr/local/lib/python3.8/site packages/django/apps/config.py”,第211行,在导入模型中
django_1 | self.models_module=导入_模块(models_module_name)
django_1 |文件“/usr/local/lib/python3.8/importlib/_init__.py”,第127行,在导入模块中
django_1| return_bootstrap._gcd_导入(名称[级别]、包、级别)
django_1 |文件“”,第1014行,在_gcd_导入中
django_1 |文件“”,第991行,在_find_和_load中
django_1 |文件“”,第975行,在_find_和_load_unlocked中
django|u 1 |文件“”,第671行,在_load_unlocked中
django_1 |文件“”,第783行,在exec_模块中
django_1 |文件“”,第219行,在已删除帧的调用中
django_1 |文件“/app/comments/models/_init_uuuu.py”,第1行,在
django_1|来自comments.models.comments导入注释
django_1 |文件“/app/comments/models/comments.py”,第7行,在
django_1|来自用户。模型导入用户
django_1 |文件“/app/users/models/_init__uu.py”,第1行,在
django_1|来自users.models.user_backends导入UserBackend
django_1 |文件“/app/users/models/user_backends.py”,第8行,在
django_1|来自django.contrib.auth.backends导入模型后端
django_1| File“/usr/local/lib/python3.8/site packages/django/contrib/auth/backends.py”,第5行,在
django_1 | UserModel=get_user_model()
django_1 | File“/usr/local/lib/python3.8/site packages/django/contrib/auth/uuuuu init_uuuuuuuuuuuuu.py”,第161行,在get_user_模型中
django|u 1|raise配置不当(
django_1 | django.core.exceptions.impropertlyconfigured:AUTH_USER_模型引用了尚未安装的模型“users.USER”

发布完整的回溯。让我们看看是哪种代码引发了此异常。@xyres done!已发布。此错误消息与此非常相似:。@xyres Hmmm我从项目一开始就使用了此用户模型。我所做的唯一一件事就是将模块移动到models文件夹中。