我在Django中有以下文件夹结构:
./project_root
./app
./fixtures/
./static/
./templates/
./blog/
./settings.py
./urls.py
./views.py
./manage.py
./__init__.py
./plugin
./code_editor
./static
./templates
./urls.py
./views.py
./__init__.py
./code_viewer
./static
./templates
./urls.py
./views.py
./__init__.py
所以我如何更改settings.py以便动态加载插件(这意味着我不知道将在不同的服务器中安装多少个插件。它应该在运行时动态检查并添加它。)on:< / p>
python manage.py runserver
我要改变ROOT_URLSCONF吗?还是INSTALLED_APPS?谢谢你的回答。
答案 0 :(得分:1)
让您的settings.py
执行代码,通过扫描'plugin'文件夹来确定存在哪些插件,并构建相应的INSTALLED_APPS变量。
# In settings.py
for path in os.listdir(my_plugins_folder_location):
if os.path.isdir(path):
app_name = 'project_root.plugin.%s' % path
if app_name not in INSTALLED_APPS:
INSTALLED_APPS.append(app_name)