Путь web-разработчика должен начинаться с понимания, что сайт - это на самом деле не одно приложение, а два, написанные на разных языках, работающие на разных компьютерах, в разном окружении и в разное время.
В случае Django работу сайта можно разбить на следующие этапы:
- Пользователь запустил браузер и ввёл адрес сайта
- Браузер установить tcp-соединение с сервером
- Браузер отправил в соединение http-запрос
- Сервер в ответ на запрос запустил соответствующий python-скрипт
- Python-cкрипт в процессе работы сформировал некоторое количество текста и отправил в tcp-соединение
- Python-скрипт завершил работу
- Браузер принял весь текст от сервера и закрыл соединение
- Браузер проанализировал полученных текст и нарисовал пользователю html-форму
Все дальнейшие действия пользователя будут обрабатываться только в браузере, самим браузером и\или javascript'ом. И javascript, и браузер будут работать с теми данными, которые получили от сервера. Если понадобятся другие данные, придётся повторить операции из списка выше, или с помощью отправки формы или с помощью ajax-запроса.
Отсюда ответ на ваш вопрос, если хотите изменения данных в выпадающих списка формы, вам придётся написать javascript-обработчик изменения полей формы, делающий ajax-запросы к серверу и изменяющий значения полей формы в соответствии с полученными от сервера данными, а так же дополнительные представления на сервере для обработки этих ajax-запросов. Для этих целей можно попробовать использовать готовое решение -
django-select2.