Существует несколько способов сделать это, но хорошим решением является использование пакета геотаргетинга. В зависимости от вашего бюджета, есть бесплатные и платные решения. Я использовал Digital Element (NetAcuity) для подобных вещей в прошлом, и их решения являются первоклассными. Они предоставляют как собственное серверное решение (для высокопроизводительных приложений. ~ 30 тыс. Запросов в секунду), так и решение для веб-служб для более типичных приложений. У них есть API на многих языках, включая Python, которые вы можете использовать в Django. Они позволят вам запрашивать такую информацию, как географическое положение, основной и дополнительный язык, скорость соединения и т. Д., Все это зависит от IP-адреса пользователя. Гео-точность на уровне страны очень точна, исходя из моего опыта.
Бесплатное решение, которое также стоит рассмотреть, - это MaxMind, хотя я не настолько знаком с их продуктом.