¿El concepto de dependencias también está disponible en las aplicaciones de Django?
Por ejemplo, supongamos que estoy creando mi propia aplicación personalizada de Django " polls " que se pueden reutilizar en cualquier proyecto de Django.
así que cada vez que necesite agregarlo a un proyecto, tendrá que agregar
INSTALLED_APPS = [ ... 'polls.apps.PollsConfig', ]pero también digamos que esta aplicación de encuestas depende de Django REST Framework, por lo que cada vez que la use, tendrá que agregar eso también
INSTALLED_APPS = [ ... 'polls.apps.PollsConfig', 'rest_framework', ] ¿Y si depende de muchas más aplicaciones, tengo que enumerarlas todas nuevamente en la settings.py de todos y cada uno de los proyectos?
O, ¿hay alguna forma de agregar rest_framework como una aplicación instalada dentro de apps.py de la aplicación de polls para que se instale automáticamente cada vez que se instalen encuestas en un proyecto?
Las aplicaciones conectables no pueden anular la configuración del proyecto host. Podemos agregar más comprobaciones y validaciones a las aplicaciones antes de ejecutar el proyecto.
FYI: para validar la presencia del paquete de dependencia, podemos hacer uso del método ready(...) --(DOC) de la clase PollsConfig como,
from django.contrib.admin.apps import AdminConfig class PollsConfig(AdminConfig): def ready(self): try: import rest_framework except ImportError: raise ValueError("Missing 'rest_framework' from 'INSTALLED_APPS'")