Det har faktisk ikke noget med Django selv at gøre, men med måden MySQL fungerer på.
Du kan ikke bruge aliaser i WHERE-betingelser, fordi WHERE-sætningsevaluering går forud for aliasevalueringen.
Du kan enten:
-
Gentag klausulen:
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''')
-
Udfør et undervalg:
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''')