Привет. Есть проект, бэк и фронт разделен на Django/DRF и REACT соответсвенно.
На фронте есть как статичный контент так и динамичный. Динамичный хорошо ложится на DRF а вот со статикой проблемы.
Статичных страниц несколько и будут добавляться новые, содержимое разное. Необходимо решение для создания АПИ для статичных страниц, чтоб на фронт уходил json с данными для конкретной страницы.
Пришел к одному универсальному решению с использованием
django-jsonform, помогающая удобно работать с
json в админке.
Будет одна модель для всех страниц.
У модели будет поле для слага страницы, а данные для страницы хранятся в поле
data = JSONField(schema=get_schema)
.
Для каждой страницы будет предустановленная схема данных, соответсвующая конкретному слагу. Т.е слаги тоже создаются заранее для каждой страницы:
about, contacts и тп. Слаги уникальные.
В админке при создании страниц указывается слаг (выбирается из списка допустимых), с помощью метода
get_schema(slug) определяется нужная схема, по ней формируются поля формы, и вуаля у нас сгенерилась форма по с нужными полями. Данные заполняются, сохраняются.
Фронт знает слаги и схемы данных, отправляет запрос на
pages/<slug>
и получает данные. Если в админке страницы не созданы или удалены, фронт получит 404 или пустоту.
Разумеется у такого подхода есть и плюсы и минусы.
Как считаете годным ли считается такой подход или есть другие более проверенные способы?