创建具有第三方依赖项的可安装 Django 应用程序
Creating an installable Django app with a 3rd party dependency
我正在 pypi
上创建可安装的 Django
应用程序,可以将其添加到 INSTALLED_APPS
。到目前为止,该应用程序正常运行。
现在的问题是我想在我的应用程序中使用 Django Rest Framework
。这是否意味着用户在安装我的应用程序时必须将我的应用程序以及 Django Rest Framework
添加到他们的 INSTALLED_APPS
?
有没有一种方法可以简单地将我的应用程序添加到 INSTALLED_APPS
而用户不会意识到或不需要担心其他任何事情。他们不需要知道我在后台使用 Django Rest Framework
?
我已经将 djangorestframework
添加到我的 setup.py
以便当用户 pip installs
我的包时安装它。所以问题在于用户是否必须明确地将其添加到 INSTALLED_APPS
.
您可以将 djangorestframework
添加到 setup.py 中的 install_requires
。
然后,当您的用户运行 pip install yourapp
时,它也会安装 rest 框架。
就我个人而言,我会建议在您的设置说明中将 'yourapp'
和 'rest_framework'
添加到 INSTALLED_APPS
。您也许可以找到一种自动添加它的方法,但这可能不值得付出努力。作为示例 Django 调试工具栏 removed its automatic setup code 以降低复杂性。
您能/(应该)做的最好的事情是在您的应用程序中添加 rest framework 作为依赖项,并指导用户在已安装的应用程序中添加 rest framework。因为项目设置不应该被实用地修改,应该明确硬编码并在代码库中保持只读。
您应该指导用户在已安装的应用程序中添加 rest 框架,例如 this package does
您可以做的另一件事是检查用户是否已安装 'rest_framework' 或未在您的 AppConfig class 的 ready
挂钩中像这样
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.')
至少会迫使他们这样做。
我正在 pypi
上创建可安装的 Django
应用程序,可以将其添加到 INSTALLED_APPS
。到目前为止,该应用程序正常运行。
现在的问题是我想在我的应用程序中使用 Django Rest Framework
。这是否意味着用户在安装我的应用程序时必须将我的应用程序以及 Django Rest Framework
添加到他们的 INSTALLED_APPS
?
有没有一种方法可以简单地将我的应用程序添加到 INSTALLED_APPS
而用户不会意识到或不需要担心其他任何事情。他们不需要知道我在后台使用 Django Rest Framework
?
我已经将 djangorestframework
添加到我的 setup.py
以便当用户 pip installs
我的包时安装它。所以问题在于用户是否必须明确地将其添加到 INSTALLED_APPS
.
您可以将 djangorestframework
添加到 setup.py 中的 install_requires
。
然后,当您的用户运行 pip install yourapp
时,它也会安装 rest 框架。
就我个人而言,我会建议在您的设置说明中将 'yourapp'
和 'rest_framework'
添加到 INSTALLED_APPS
。您也许可以找到一种自动添加它的方法,但这可能不值得付出努力。作为示例 Django 调试工具栏 removed its automatic setup code 以降低复杂性。
您能/(应该)做的最好的事情是在您的应用程序中添加 rest framework 作为依赖项,并指导用户在已安装的应用程序中添加 rest framework。因为项目设置不应该被实用地修改,应该明确硬编码并在代码库中保持只读。
您应该指导用户在已安装的应用程序中添加 rest 框架,例如 this package does
您可以做的另一件事是检查用户是否已安装 'rest_framework' 或未在您的 AppConfig class 的 ready
挂钩中像这样
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.')
至少会迫使他们这样做。