Наверное на такой случай уже есть готовые решения. Стоит поискать.
Если нет, то делаете форму, в которой все страны, а выбор городов пуст. Но при этом само поле — просто foreignKey на справочник городов, чтобы валидация проходила.
Далее на js делаете обработчик на изменение поля страны. Этот обработчик запрашивает список городов у api. На сервере вьюха специательная, которая отдаст json с городами нужной страны. Js забирает этот список и формирует значения второго селекта.
Валидацию формы дописать так, чтобы город соответствовал стране (ну чтобы Лондон не оказался во Франции).