Всъщност няма нищо общо със самото Django, а с начина, по който работи MySQL.
Не можете да използвате псевдоними в условия WHERE, тъй като оценката на клаузата WHERE предхожда оценката на псевдоними.
Можете да:
-
Повторете клаузата:
Company.objects.raw('''SELECT *,core_location.a + core_location.b as dist FROM core_location,core_company WHERE (core_location.a + core_location.b)<10 ORDER BY dist''')
-
Направете подселекция:
Company.objects.raw('''SELECT * FROM ( SELECT *,core_location.a + core_location.b as dist FROM core_location,core_company ) as subselect WHERE dist<10 ORDER BY dist''')