Тестовое задание от 18.10.2022 г. на позицию Python – разработчик (back-end)

Нужно реализовать систему выбора объектов в организации на Django 4, postgresql, JS, HTML5, bootstrap 5, ccs, без использования REST API (если есть желание можно и с ним). Вся суть задания, есть головное подразделение А, в которое входят объект Б, в свою очередь в объект Б может или не может входить объект В.

Объектов А много, в каждый объект А входят свои объекты Б без ограничений, так же в каждые объекты Б входят свои объекты В без ограничений.
Пример:

<img src="img_task/table.png"/>


Объект А имеет дочерний объект Б, объект Б либо имеет либо нет дочерний объект В.
У объекта А есть только дочерний объект, других полей нет. 
Для объекта А поля:
- Имя объекта.
Объект Б и В имеют дополнительные поля:
- Имя объекта,
- Число людей, 
- Ответственный должность (любая),
- Ф.И.О ответственного,
- Разряд.
И ссылка на дочерний объект с произвольными данными, выводится в таблице, для каждого Б и В. 

Необходимо реализовать на Django такую структуру:

<img src="img_task/form.png"/>

При выборе поля А, должно подгружаться поле Б, только те объекты которые входят в текущий выбранный объект А. Так же, если есть дочерние объекты В, для выбранного поля Б, то они тоже должны подгружаться. При выборе данных из формы, лишних данных не должно быть, только те, которые относятся к тем или иным объектам.

Очень важно, после выбора объектов А, Б и если есть дочерние объекты Б, то и В, после перезагрузки страницы (например пользователь нажал f5) должны поля select и другие в текущей момент поля text, number помнить свое состояние, то есть не сбрасываться (можно использовать localStorage в js), так же можно использовать постраничный вывод, например /1, /1/2, /1/2/3 (где 1, 2, 3 объекты А, Б, В). 

Для заполнения полей объектов Б и В из БД:
- Число людей, 
- Ответственный должность (любая),
- Ф.И.О ответственного,
- Разряд.
использовать ajax, jQuery (будет плюсом), или возможности Django (на ваше усмотрение), вывод данных по страницам.

Для выполнения задания отводится неделя, плюсом будет если все это оформится в docker-compose и развернется в облаке, хероку или других сервисах. Код должен быть хорошо документирован, как комментариями, так и докстрингами. Так же на github в разделе readmi должно быть четкое и понятное описание как развернуть проект и посмотреть работу. После выполнения тестового задания отправить ссылку на код в github.


