我正在开发一个应用程序,需要安装另一个应用程序。我可以将它添加到我的setup.py中,它也会安装其他应用程序。
安装我的应用程序后,我需要将其添加到INSTALLED_APPS,但我也需要添加外部应用程序。
有没有办法隐式传递其他应用程序?
处理这种依赖关系的推荐方法是什么,以避免要求用户在需要时添加多个应用程序?
答案 0 :(得分:3)
没有做一些奇怪的黑客攻击,就没有办法做到这一点,也不应该这样做。用户应该知道他们正在为项目添加什么以及需要哪些依赖项。请记住Django's design philosophy:
显式优于隐式
查看以下某些应用。它们都需要INSTALLED_APPS
中的依赖项。他们在文档中明确指出用户必须手动将它们添加到项目中:
答案 1 :(得分:1)
有一个名为django-autoconfig的库可以让你这样做。您的应用中基本上包含autoconfig.py
,如果您的应用包含在INSTALLED_APPS
中,则会加载autoconfig.py
。
该文件应如下所示:
SETTINGS = {
'INSTALLED_APPS': [
'external_app_1',
'external_app_2',
],
}
阅读文档以获取有关订购的更多信息以及更高级的内容。