【问题标题】:Extend INSTALLED_APPS in settings.py from django reusable app从 django 可重用应用程序扩展 settings.py 中的 INSTALLED_APPS
【发布时间】:2020-05-21 21:02:24
【问题描述】:

我正在构建一个具有其他 django 依赖项的可重用应用程序(例如django-rest-framework)。我知道如果我将它添加到install_requires 中的setup.py 它将被打包。但是有没有办法我也可以从使用我的打包应用程序的项目中扩展 settings.py 中的 INSTALLED_APPS 以便它添加所有依赖项?目前,使用此配置,如果我安装打包的应用程序,我需要手动将我的应用程序名称添加到 INSTALLED_APPS 以及它的所有依赖项。我想有一种方法可以避免将所有应用程序的依赖项手动添加到INSTALLED_APPS 中?

【问题讨论】:

    标签: python django


    【解决方案1】:

    记住 INSTALLED_APPS 只是一个数组

    你可以简单地导入它

    from othersettings.py import INSTALLED_APPS as IMPORTED_APPS
    
    INSTALLED_APPS = [
        ....
    ] + IMPORTED_APPS
    

    【讨论】:

    • 如果开发者已经在 INSTALLED_APPS 中添加了该应用程序会怎样?如果我再次添加它,它将是重复的,它将失败。我尝试添加一些逻辑,但是 INSTALLED_APPS 数组在我需要的时候是空的,猜猜它是在之后初始化的
    • 如果出现这种重复的情况,你可能不得不重新考虑你声明这些的方式。应用程序名称必须是这些文件独有的,如果您遇到问题,请使用外部 py 文件来保存该数组并在那里管理它。无论哪种方式,它都需要有一个标准的声明逻辑。
    猜你喜欢
    • 2013-06-23
    • 2016-05-23
    • 1970-01-01
    • 1970-01-01
    • 2018-06-06
    • 1970-01-01
    • 2010-10-28
    • 1970-01-01
    • 2017-06-18
    相关资源
    最近更新 更多