0

我在 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 以动态加载插件(这意味着我不知道在不同的服务器上将安装多少插件。它应该在运行时动态检查并添加它。)在:

python manage.py runserver

我应该更改 ROOT_URLSCONF 吗?或 INSTALLED_APPS?谢谢你的回答。

4

1 回答 1

1

让您的settings.py执行代码通过扫描“插件”文件夹来确定存在哪些插件,并构建适当的 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)
于 2013-11-07T02:30:39.440 回答