W rzeczywistości nie ma to nic wspólnego z samym Django, ale ze sposobem działania MySQL.
Nie możesz używać aliasów w warunkach WHERE, ponieważ ocena klauzuli WHERE poprzedza ocenę aliasów.
Możesz:
-
Powtórz zdanie:
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''')
-
Wykonaj podwybór:
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''')