Det har faktiskt ingenting att göra med själva Django, utan med hur MySQL fungerar.
Du kan inte använda alias i WHERE-villkor, eftersom WHERE-satsutvärderingen föregår aliasutvärderingen.
Du kan antingen:
-
Upprepa satsen:
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''')
-
Gör ett underval:
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''')