Лучшее решение для ограниченного количества динамических полей модели в приложении Django

Я использую Django для создания приложения для профессионалов активного отдыха (преподавателей, гидов), чтобы отслеживать их опыт. По сути, это журнал, но с такими функциями, как совместная работа, составление карт и отчетов. Вы можете посмотреть, что у меня есть на данный момент здесь

В настоящее время работает над моделью "Опыт". Опыт будет иметь стандартные атрибуты: куда вы ездили, когда, была ли это профессиональная поездка или ваш личный отдых, кто были ваши клиенты? Но у него также должны быть атрибуты, характерные для каждого вида активного отдыха. Для гребли - каноэ, байдарки и т. д. Для белой воды, какой класс (1, 2, 3...)? Для скалолазания, какой класс (5.10, 5.11...) и сколько этапов?

Я встрою многие из этих атрибутов, но я также хочу, чтобы приложение было достаточно гибким, чтобы пользователи могли добавить свой собственный вид спорта (например, катание на снегу босиком) и создать поля, основанные на том, что работодателю нужно знать об их опыте в этом виде спорта.

Многим постам о динамических полях моделей в Django уже несколько лет. Например, this упоминает EAV, но говорит, что нет явного лидера в реализации. Сегодня Django EAV 2 кажется довольно сильным? По-видимому, все еще есть проблемы с эффективностью по сравнению с JSON?

Учитывая, что большинству моих пользователей не понадобятся пользовательские поля, а те, кому понадобятся, определят, возможно, 2-3 типа опыта с 5-6 пользовательскими полями в каждом, я задаюсь вопросом, как лучше всего реализовать это сегодня.

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

Заранее спасибо!

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