Джанго также отлично позволяет обрабатывать много урлов одним view. Можно просто зароутить все после слеша и парсить хвост урла как адресную цепочку.
Как правило в таких способах представления адреса нужно стараться избегать отдельных запросов к БД по стране, городу, улице, дому. В идеале нужно доставать всю необходимую информацию за один запрос.
Тут становится важным как устроена ваша БД. Обычно адресные элементы индентифицируются не по названию, ведь название, в данном случае, - это плохой идентификатор. Он с одной стороны громоздкий (Санкт-Петербург), а, с другой, есть проблемы с уникальностью для мелких населенных пунктов. А ещё топонимы чаще всего интенационализируются, то есть на разных языках они пишутся по-разному. Кроме того, адреса в рахных странах могут записываться по-разному, встречаются совершенно разные уровни административного деления, разные схемы подчинения административных единиц.
К примеру, в РФ есть области (автономные области, края), районы, сёла, посёлки городского типа, микрорайоны, да и дома - это не рпосто нумерация, там есть дроби, литеры, корпуса...
Каждй раз когда я вижу, что кто-то пытается такую сложныю предметную область формализовать в виде элементов URL, я срашиваю, а зачем это вообще нужно? URL - это не самая удобная штука для непосредственного ввода человеком. Особенно много вопросов вызовут топонимы с пробелами, дефисами, сокрашениями (С. Петербург, Питер). Для чего всё это? Не проще ли воспользоваться идентификатором адресной единицы от одного из адресных справочников вроде OKATO? Понятно что в разных странах эти справочники разные, но тут в любом случае надо делать разную логику.
Я бы не заморачивался излишней читаемостью урлов в таком вот случае, а просто добавил бы префикс, однозначно указывающий на "домен" адресного пространства, и следом бы указывал идентификатор внутри этого адресного пространства. Вот смотрите сколько их бывает:
https://classifikators.ru
К примеру:
/okato/70228870004