Раз на раз не приходится, зависит от того, какие в вашей модели User есть поля, какие данные хранятся в базе и тд. Миграции не всегда чисто проходят. Всё индивидуально.
def lookups - это ваш фильтр (то как он будет выглядеть и какие пункты содержать). У вас в нем список инженеров, если их будет скажем 100 (200, 1000), то список будет большим.
Если построить правильную архитектуру Django-проекта, то добавление свистелок-перделок обходится очень дешево. Тут работа в перспективу. Или быстро на знакомой технологии и проблемы с поддержкой, или чуть медленней на Django, но потом кайф.
Примерно так
<?PHP
$data = /** данные для сериализации - в вашем случае ассоциативный массив **/;
header('Content-Type: application/json');
echo json_encode($data);
?>
Для базовых шаблонов создается директория templates в корне проекта
У меня обычно так
/templates
/templates/base.html - базовый шаблон (head, body)
/templates/layout.html - основная структура страницы (блоки, шапка, header, меню и тд). Шаблон насширяет base.html
/templates/header.html - отдельно шапка (она импортируется в layout.html)
/templates/footer.html - отдельно низ (он импортируется в layout.html)
и т.д
Как вспомогательный инструмент учителя - да, там красивые иллюстрации и схемы.