Найти - Пользователи
Полная версия: Хранение пересекающихся (мета)данных
Начало » Python для экспертов » Хранение пересекающихся (мета)данных
1
o7412369815963
Пример:
Есть базовая платформа (core), для пользователей можно выбирать список ролей, в ролях есть список доступных типов.
Например есть роль “Администратор”, со списком

Далее я ставлю плагин “Блоги”: он добавляет в базу тип “Блог”, при этом администратору в список типов должен добавится этот “Блог”.

Далее Администратор заходит в админку ТЕСТОВОЙ среды, мышкой добавляет администратору ещё пару типов в список, после того как он убедился что все работает, изменения нужно закомитить и отправить в деплой.

При этом core может совершенствоваться, и при апдейте либо разворачивании проекта с нуля, нужно что-б core объекты все создались, после чего корректно накатились изменения из плагина “Блог”.

-Иногда порядок в списке важен (при этом разные плагины могут законфликтовать)
-Делать из списка “дочернюю” коллекцию, не очень подходит.

Какие есть варианты реализации?


В принципе, если все хранить разными объектами, т.е. разные плагины не изменяют объекты друг друга, до достаточно будет просто скопировать объекты плагина в базу и все. Но это создает нагрузку/сложности, усложнение редактирования объекта который состоит из разных, либо после развертывания системы делать “компиляцию” объектов разных плагинов и т.п.

Либо прямо результирующие объекты модифицировать, тогда непонятно как комитить “изменения” после редактирования мышкой.

Либо делать какое-то апи на пересекающиеся (общие) типы…
o7412369815963
Конкретно эту проблему с ролями можно обрулить, просто сделать роль “Админ Блогов” который будет лежать в плагине Блогов. Т.е. сделали не пересекающийся объект. Но проблема остается, например админ может добавить поле email в тип пользователя, либо добавить “обработчик” в список который в типе Пользователь.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB