Тут куда важнее связи между моделями.
Необходимо, чтобы соответствующие таблицы были связаны внешним ключом.
Например, в таблице "район" должен быть внешний ключ к "город". В таком случае - реализовать это будет довольно просто:
ключевое поле загружаете как угодно и вешаете на него событие "
изменение", вызывающее js-запрос к серверу (fetch/xmlhttprequest), который будет посылать выбранные значения и на основе полученного результата формировать пункты для select`а.
Для этого, разумеется, нужно будет создать отдельное представление, отдающее нужные данные (в виде json`а, например).
Ну и не забывайте о всяких "декоративных" моментах по типу отключения второго поля пока в первом ничего не выбрано.