创建一个具有第三方依赖项的可安装的 Django 应用程序



我正在pypi上创建一个可安装的Django应用程序,该应用程序可以添加到INSTALLED_APPS中。到目前为止,该应用程序可以正常工作。

现在的问题是我希望在我的应用程序中使用Django Rest Framework。这是否意味着用户在安装我的应用时必须将我的应用以及Django Rest Framework添加到其INSTALLED_APPS

有没有办法简单地将我的应用程序添加到INSTALLED_APPS,而用户不知道或不需要担心其他任何事情。他们不需要知道我在引擎盖下使用Django Rest Framework吗?

我已经将djangorestframework添加到我的setup.py中,以便在用户pip installs我的包时安装它。所以问题在于用户是否必须将其显式添加到INSTALLED_APPS.

你能/(应该(做的最好的事情是将 rest 框架作为依赖项添加到您的应用程序中,并指示用户在已安装的应用程序中添加 rest 框架。由于不应实际修改项目设置,因此应显式硬编码并在代码库中保持只读。

您应该指示用户在已安装的应用程序中添加 rest 框架,就像这个包一样

您可以做的另一件事是检查用户是否已在 AppConfig 类ready钩子中安装了"rest_framework",如下所示

class YourAppConfig(AppConfig):
name = 'yourapp'
def ready(self):
from django.conf import settings
if 'rest_framework' not in settings.INSTALLED_APPS:
raise ImproperlyConfigured('rest_framework must be in installed apps.')

这至少会迫使他们这样做。

您可以在 setup.py 中添加djangorestframeworkinstall_requires

然后,当用户运行pip install yourapp时,它也将安装 rest 框架。

就个人而言,我会说在您的设置说明中添加'yourapp''rest_framework'INSTALLED_APPS。您也许可以找到一种自动添加它的方法,但这可能不值得付出努力。例如,Django 调试工具栏删除了其自动设置代码以降低复杂性。

相关内容

  • 没有找到相关文章

最新更新