[英]Why can't my Django root url-conf find my app module?
我想知道是否有人可以幫助我。 我希望重組一個新的 django 項目,以表示以下內容:
-repository/
-config/
-asgi.py
-settings.py
-urls.py
-wsgi.py
-__init__.py
-project root/
-app_1/
-admin.py
-apps.py
-models.py
-tests.py
-urls.py
-views.py
-__init__.py
-app_2/
-...
-app_3/
-...
-migrations/
-__init__.py
-static/
-templates/
-docs/
-manage.py
到目前為止,我已經嘗試通過將以下行附加到 settings.py 文件來實現這一點:
# This is the <repository root>
BASE_DIR = Path(__file__).resolve().parent.parent
# This is the <project repository>
PROJECT_ROOT = BASE_DIR / 'project'
MEDIA_ROOT = PROJECT_ROOT / 'media'
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/3.0/howto/static-files/
STATIC_ROOT = PROJECT_ROOT / 'static_root'
STATIC_URL = PROJECT_ROOT / 'static'
ROOT_URLCONF = 'config.urls'
Templates = [{ ...
'DIRS': [PROJECT_ROOT / 'templates'],
... }]
在已安裝的應用程序中,我必須指定“.app1”,而傳統上只是“app1”。 我修改了 manage.py、wsgi.py、asgi.py 文件等以指向設置文件。
然而...
當我嘗試使用以下方法在配置根 urlconf 中包含()一個特定於應用程序的 urlconf 時:
from django.contrib import admin
from django.urls import path, include
import project.app1
urlpatterns = [
path('admin/', admin.site.urls),
path('app1/', include('app1.urls', namespace='app1'))
]
它說
“ModuleNotFoundError:沒有名為“app1”的模塊”
如果我在這個重組中遺漏了一個步驟和/或如果我在 url conf 中遺漏了什么,請有人告訴我嗎?
在settings.py
的INSTALLED_APPS
中添加app1
您在不添加__init__.py
的情況下向您的應用程序添加了一些子目錄 ( project_root
)。 Django 找不到您的app1
路徑。
嘗試在settings.py
中將subdirectory
注冊到您的 Django 路徑
import sys
sys.path.append(os.path.join(BASE_DIR, 'project_root'))
建議:不要在 Django 模塊/目錄中使用空格
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.