Ve skutečnosti to nemá nic společného se samotným Django, ale s tím, jak funguje MySQL.
Aliasy nelze použít v podmínkách WHERE, protože vyhodnocení klauzule WHERE předchází vyhodnocení aliasů.
Můžete buď:
-
Opakujte větu:
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''')
-
Proveďte dílčí výbě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''')