Django помещает дополнительные установленные приложения в другой файл настроек.

Я пытаюсь отделить свои настройки разработчика, и, хотя там есть масса информации, я просто собираюсь найти решение cs01 в этом посте здесь: Django: Как управлять настройками разработки и производства?

Поэтому я не смог создать папку настроек и сделать это таким образом, поскольку кажется, что вам нужно начать переписывать файл manage.py, чего я не хочу делать прямо сейчас, я не настолько опытен. Таким образом, в приведенном выше сообщении есть хорошее простое решение для сайта, предназначенного только для внутренней работы. Однако пока я могу установить:

DEBUG = False

в основных настройках и установите для него значение True в моем локальном, это работает хорошо, я не могу добавлять установленные приложения, я пробовал это в моем settings_dev.py

DEBUG = True

INSTALLED_APPS += [
    'django_extensions',
]

Итак, INSTALLED_APPS не определен. как это можно обойти? в настоящее время дополнительные установленные приложения находятся в конце файла settings.py следующим образом:

if os.environ.get('DJANGO_DEVELOPMENT'):
    from .settings_dev import *

    INSTALLED_APPS += [
        'django_extensions',
    ]

Есть ли простой способ переместить дополнительные INSTALLED_APPS в мои настройки разработчика? У меня есть другие расширения, которые я хочу добавить, такие как панель инструментов отладки, но они включают дополнительное промежуточное программное обеспечение, поэтому я ожидаю, что и там будет такая же ситуация.


person iFunction    schedule 28.07.2020    source источник


Ответы (1)


Не полный ответ на ваш вопрос, но отвечает на него для людей, использующих dynaconf вместе с django.

Dynaconf позволяет объединять списки и словари вместо их переопределения (https://www.dynaconf.com/merging/), так что в файле конфигурации вы можете использовать dynaconf_merge_unique и иметь что-то вроде этого:

local: &LOCAL
  <<: *DEVELOPMENT
  INSTALLED_APPS:
    - dynaconf_merge_unique
    - sslserver
    - django_extensions

Это приводит к тому, что sslserver и django_extensions устанавливаются только в локальных средах.

Опять же, извините, что это именно ответ dynaconf, но, возможно, он будет полезен кому-то, кто читает этот вопрос.

person jsj    schedule 16.11.2020