Python 是否将应用程序中的Django设置导入项目设置?

Python 是否将应用程序中的Django设置导入项目设置?,python,python-3.x,django,settings,Python,Python 3.x,Django,Settings,我有几个项目都使用“共享应用程序”。在该共享应用程序中,我有一个名为default\u settings.py的模块,其中包含拥有该共享应用程序的所有项目所使用的设置 文件夹结构是常用的Django结构: project_dir | - project_dir | - settings.py - urls.py - wsgi.py - shared_app | - default_settings.py - ... all other

我有几个项目都使用“共享应用程序”。在该共享应用程序中,我有一个名为
default\u settings.py
的模块,其中包含拥有该共享应用程序的所有项目所使用的设置

文件夹结构是常用的Django结构:

project_dir
 |
 - project_dir
    |
    - settings.py
    - urls.py
    - wsgi.py
 - shared_app
    |
    - default_settings.py
    - ... all other app files ...
 - other_app
 - some_other_app
 - ...other project files....
在my
project\u dir/settings.py
中,我有以下几行:

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

exec(
    open(os.path.join(BASE_DIR, "shared_app", "default_settings.py")).read()
) in globals()

# Below this line - I can use any settings from default_settings.py 

if DEBUG:
    SESSION_EXPIRE_AT_BROWSER_CLOSE = False
default\u settings.py
文件包含以下内容:

DEBUG = is_debug(os.environ.get("DJANGO_DEBUG"))

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

SECRET_KEY = os.environ.get("DJANGO_SECRET_KEY")

SESSION_EXPIRE_AT_BROWSER_CLOSE = True
default\u settings.py
中的设置太多,无法从share\u应用程序导入类似于
的内容。其他的设置大约有20-30个


有更好的方法吗?还是我一直在使用那个稍微令人困惑、难看的
exec()
命令?如果我没弄错的话,你还能做些什么

from share_app import * 

从某处。默认设置导入*
?请注意,通常不建议这样做,因为您不知道导入了哪些名称,但这至少在
settings.py
的情况下有效。是的,我的linter不喜欢它-但我认为这样做可能会有效-尽管我的linter不太喜欢它。