Установка нескольких приложений одной записью в INSTALLED_APPS в django (зависимость)

доступна ли концепция зависимостей и в приложениях Django?

Например, допустим, я создаю свое собственное пользовательское приложение Django "polls", которое может быть повторно использовано в любом проекте Django.

поэтому всякий раз, когда вам нужно добавить его в проект, вы должны будете добавить

INSTALLED_APPS = [
    ...
    'polls.apps.PollsConfig',
]

но давайте также скажем, что это приложение для опросов зависит от Django REST Framework, поэтому всякий раз, когда вы используете его, вам придется добавить и его

INSTALLED_APPS = [
    ...
    'polls.apps.PollsConfig',
    'rest_framework',
]

А как насчет того, если он зависит от еще большего количества приложений, должен ли я снова перечислять их все в settings.py каждого проекта?

Или, есть ли способ добавить rest_framework как установленное приложение внутри apps.py приложения polls, чтобы оно автоматически устанавливалось всякий раз, когда polls устанавливается на проект?

Приложения pluggable не могут переопределить настройки главного проекта. Мы можем добавить больше проверок и валидаций к приложениям перед запуском проекта.


FYI: чтобы проверить наличие пакета зависимости, мы можем воспользоваться методом ready(...)--(DOC) класса PollsConfig as,

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'")
Вернуться на верх