gpt4 book ai didi

django - 无法为 Django 应用程序使用相对名称

转载 作者:行者123 更新时间:2023-12-02 08:25:18 24 4
gpt4 key购买 nike

我有一个名为 test1 的新 Django 1.8 项目。我想使用一个名为 smartmetadata 的应用程序。我已将其复制到 test1/test1/apps/smartmetadata 上,并包含 url(r'^smartmetadata/', include('smartmetadata.urls'), name='smartmetadata '),test1/urls.py 文件中。

当将其作为 smartmetadata 包含在 INSTALLED_APPS 中时,我收到 ImportError: No module named smartmetadata。但是,如果我将其包含为 test1.apps.smartmetadata 那么它会正确加载。我在其他项目中看到过,例如 Mayan仅使用自己的标签而不是完整路径包含应用程序。我怎样才能实现这一目标?

编辑:我完整的urls.py文件内容:

from django.conf.urls import include, url
from django.contrib import admin

urlpatterns = [
# Examples:
# url(r'^$', 'test1.views.home', name='home'),
# url(r'^blog/', include('blog.urls')),

url(r'^admin/', include(admin.site.urls)),
url(r'^smartmetadata/', include('smartmetadata.urls'), name='smartmetadata'),
]

我的完整项目树:

.
├── db.sqlite3
├── manage.py
├── run.sh
└── test1
├── apps
│   ├── __init__.py
│   ├── __init__.pyc
│   └── smartmetadata
│   ├── admin.py
│   ├── forms.py
│   ├── __init__.py
│   ├── __init__.pyc
│   ├── models.py
│   ├── models.pyc
│   ├── tests.py
│   ├── utils.py
│   └── views.py
├── __init__.py
├── __init__.pyc
├── settings.py
├── settings.pyc
├── urls.py
├── wsgi.py
└── wsgi.pyc

最佳答案

您需要将 apps 文件夹添加到 PYTHON_PATH 中。

settings.py 是一个很好的地方:

import os
import sys

# BASE_DIR should already be present in your settings.
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

APPS_DIR = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'apps')

sys.path.append(APPS_DIR)

顺便说一句,我建议将 apps 文件夹放在项目的根目录(即 BASE_DIR),而不是放在“settings”文件夹中。

关于django - 无法为 Django 应用程序使用相对名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29826557/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com