Skip to content

Latest commit

 

History

History
44 lines (29 loc) · 2.26 KB

File metadata and controls

44 lines (29 loc) · 2.26 KB

Проект: Dynamic Field For Model

Описание: Проект представляет собой пример реализации динамически изменяемых полей в моделях, не прибегая к изменению структуры базы данных.

Принцип работы: Создается модель профессии. Она имеет связь many-to-many с таблицей dynamic_fields. Динамические поля создаются отдельно и могут быть переиспользованы в других профессиях. Дополнительные поля можно редактировать.

Создавая дополнительное поле нужно выбрать тип поля, НА данный момент представлены 3 типа:

  • Число
  • Текст
  • Выбор значения

Каждое поле можно отметить обязательным. При выборе типа "Выбор значения" нужно указать через запятую как минимум 2 значения на выбор.

На основании профессии создается вакансия. Информация о дополнительных полях храниться в поле extra_fields в формате JSON. Данные валидируются согласно указанным типам.

Приложение упаковано в 3 контейнера: База данных, приложение и nginx.

Запуск проекта:

  1. Клонировать репозиторй
  2. Из каталога /infra запустить Docker Compose

Проект будет доступен по http://127.0.0.1:8777

  1. Загрузить фикстуры в БД:
sudo docker compose exec backend python manage.py loaddata data.json


Данные для входа в админ панель: User: admin Password: admin

http://127.0.0.1:8777/professions/ - просмотр созданных профессий со списком дополнительных полей

http://127.0.0.1:8777/vacancies/ - просмотр созданных вакансий на основании профессий