【发布时间】:2020-05-10 17:44:16
【问题描述】:
创建一个基于 Django 3 的全栈项目似乎是最佳实践(或至少一种常用方法),该项目使用具有此类结构的项目特定 Django 应用程序(而不是独立的 Django 应用程序)(请参阅例如 @987654321 @):
fullstack_project/
frontend/
... # frontend stuff goes into here
backend/ # Django project name
apps/
app1/
apps.py
logic.py
models.py
...
app2/
apps.py
logic.py
models.py
...
wsgi.py
...
manage.py
应用程序(此处:app1)通过fullstack_project/backend/apps/app1/apps.py以最基本的形式(没有规则、视图等)集成
class App1Config(AppConfig):
name = 'backend.apps.app1'
和fullstack_project/backend/settings.py
INSTALLED_APPS = [
...
'backend.apps.app1.apps.App1Config',
'backend.apps.app2.apps.App2Config',
]
在另一个应用程序(例如app1/logic.py)中使用一个应用程序的逻辑(例如app2/logic.py)可以正常工作(例如通过app1/logic.py中的from backend.apps.app2.logic import ...)。
但是,如果我尝试在 app2 的逻辑中访问 app1 的模型,我会得到 django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet.。我可以为应用程序实现数据库包装器以允许跨应用程序数据库访问。但是无论如何,这些应用程序都是跨项目的,我想避免这种情况并更轻松地允许访问。我该如何解决这个问题?
【问题讨论】:
-
您是否在设置的已安装应用程序中添加了这两个应用程序
-
是的。我改进了这个问题。
-
您是否在
__init__.py的应用程序中执行任何功能,如果有,请评论和检查 -
@PavanKumarTS 是的,我错过了删除其中一个应用程序的
__init__.py中的调试代码。如果您提供您的评论作为答案,我会接受它。谢谢!
标签: django python-3.x django-models django-apps