Мне по сути не нужны все эти валидации и прочее. Пользователь вообще не касается базы. Ему предоставляется содержимое 3 таблиц, - он выбирает в одной части страницы набор полей из одной, в другой части - набор из другой. Нажимает "сформировать" и этот набор данных улетает на обработку и припарацию во вьюху.
либо формсетом, она тебе сразу соберет массив данных который ты можешь обработать.
либо в шаблоне переменной назначаешь выпадающий список(html), в скрипте засовываешь первый элемент в поле, при добавлении новой строки закидываешь туда значение из переменных и еще надо будет продумать пересчет id select. потому что получится что поменяв значение в одном - поменяется во всех