/project/
apps/
app1/
app2/
...
__init__.py
manage.py
settings.py
urls.py
您可以通过将以下内容插入您的
apps
:settings.py
然后,您可以以与您的项目root相同的方式使用此文件夹中的所有应用程序!您可以很容易地做到这一点,但是您需要更改the
import os
import sys
PROJECT_ROOT = os.path.dirname(__file__)
sys.path.insert(0, os.path.join(PROJECT_ROOT, 'apps'))
看起来像这样:
settings.py
INSTALLED_APPS = (
'apps.app1',
'apps.app2',
# ...
)
..并修改任何
urls.py
如何利用
urlpatterns = patterns('',
(r'^app1/',include('apps.app1')),
(r'^app2/',include('apps.app2')),
)
import
BASE_DIR
settings.py
希望这帮助是
import sys
sys.path.insert(0, os.path.join(BASE_DIR, 'apps'))
或
Berhard Vallant
的答案的轻微变体,这是一个替代片段,可以放在
Anshuman
中
以这种方式进行它具有额外的好处,即您的模板目录更加干净,因为它们看起来像下面。没有
import os
import sys # Insert this line
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
# Insert the two lines below
APPS_DIR = os.path.join(BASE_DIR, '<your_project_dir_name>/apps/')
sys.path.insert(0, APPS_DIR)
变量,在APPS_DIR
列表的<your_project_dir_name>/apps/
列表中将有很多重新申请。
DIRS
您可以使用
TEMPLATES
中给出的简短名称或使用the的长格式语法在
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [
os.path.join(APPS_DIR, '<app_name>/templates/<app_name>'),
os.path.join(APPS_DIR, '<app_name>/templates/<app_name>'),
...
],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
列表中列出
INSTALLED_APPS
列表中的应用程序中的应用程序。您需要简单简单,您需要添加到settings.py
apps.py
并编辑您的应用程序配置
-old应用程序配置:
appname.apps.AppnameConfig
对新应用程序配置:
appname
the安装的应用程序示例:
我认为这非常有用且有用。好运:)
即将在您的应用程序夹中添加
class MyappConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'myapp'
(总共4个下划线)。现在你可以做
class MyappConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
label='myapp'
name = 'apps.myapp'
如果您使用virtualenv/virtualenvwrapper(有点过时但仍然有效),则可以使用随附的
INSTALLED_APPS = [
...
'apps.myapp.apps.MyappConfig'
...
]
命令来增强您的python路径:
__init__.py
副本,然后:
在我的情况下,我的项目文件夹结构如下:
add2virtualenv
mkdir apps
cd apps
pwd
[/path/to/apps/dir]
上解决了:
add2virtualenv /path/to/apps/dir
无需更改
/project/
/apps/
/app1/
/app2/
/src/
/settings.py
...
。
以下对我有用。settings.py
inside apps.py under /myapp:
BASE_DIR = os.path.dirname(os.path.dirname(__file__))
sys.path.insert(0, os.path.join(BASE_DIR, '../apps'))
urls.py
添加像这样
/project1
/apps
/myapp
nettings.py
中导入
class MyAppConfig(AppConfig):
name = "apps.myapp"
然后通过添加和更改name
和label
来更新您的应用程序项目中的
apps.py前
PROJECT_ROOT = os.path.dirname(__file__)
sys.path.insert(0, os.path.join(PROJECT_ROOT, "apps"))
不要忘记添加更改SETTINGS.py 我更喜欢使用多个列表,而不是installed_apps
import os
import sys
from django.apps import AppConfig
class ProjectConfig(AppConfig):
default_auto_field = "django.db.models.BigAutoField"
name = "projects"