Не уверен, если вам все еще нужно это, но я решил это, начиная с ответа Alasdair. Вы хотите использовать информацию из запроса для построения модели, или она все равно будет запускать дополнительные запросы при попытке доступа к полю внешнего ключа. Так что в вашем случае вы бы хотели:
cities = list(City.objects.raw("""
SELECT
city.*, country.name as countryName
FROM
cities INNER JOIN country ON city.country_id = country.id
WHERE
city.name = 'LONDON"""))
for city in cities:
city.country = Country(name=city.countryName)
Строка, которая назначает страну, не попадает в базу данных, она просто создает модель. Затем после этого при доступе к city.country
не будет запущен другой запрос к базе данных.