Django приложение глобальные переменные в базе данных лучшая практика

Я новичок в django. Я храню глобальные переменные приложения в папке окружения settings. Но теперь мне нужно хранить переменные в базе данных, потому что я хочу изменять их из админки django. Мой способ сделать это: Создать класс модели в ядре django, где определить две переменные app_name - список приложений и data-JSON. Но я думаю, что это не лучший вариант. Так как может быть сложно использовать GIT

Решил использовать готовое решение: django-extra-setting.
В настройках приложения определяем переменные, которые будут храниться в БД:

DB_VARIABLES = {'variable_name': ['text', 'default_value']}

Читает переменную из файлов после загрузки проекта django


from settings import PROJECT_APPS
from extra_settings.models import Setting
from importlib import import_module
class CoreConfig(AppConfig):
    def ready(self):
        if (is_manage_py and is_runserver) or (not is_manage_py):
              local_settings = import_module(f'path/{app_name}')
        for app_name in PROJECT_APPS:
            local_constants = local_settings.DB_VARIABLES if hasattr(local_settings, 'DB_VARIABLES') else False
            if local_constants:
                variables = {**variables, **{key: local_constants[key] for key in local_constants}}
                for constant_name in local_constants:
                    if Setting.objects.filter(name=constant_name).count() == 0:
                        constant_values = local_constants[constant_name]
                        Setting(name=constant_name, value_type=constant_values[0], value=constant_values[1]).save()


Вернуться на верх