﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
14922	Failure with spatial queries spanning a foreign key join	crucialfelix	nobody	"{{{
class Apt(Model):

    geo = models.PointField(srid=4326,editable=False,default=Point(0,0))

class AptStatus(Model):
    
    apt = models.ForeignKey(Apt)

from django.contrib.gis.geos import Polygon
box = Polygon.from_bbox(10,20,10,20)
AptStatus.objects.filter(apt__geo__within=box)
FieldError: Join on field 'geo' not permitted. Did you misspell 'within' for the lookup type?
}}}

however I've found a nullable foreign key query did work:

{{{
class Apt(Model):

    geo = models.PointField(srid=4326,editable=False,default=Point(0,0))
    bldg = models.ForeignKey(Bldg,null=True)

class Bldg(Model):

    geo = models.PointField(srid=4326,editable=False,default=Point(0,0))

Apt.objects.filter(bldg__geo__within=box)

SELECT ...
      FROM ""nsproperties_apt""
      INNER JOIN ""nsproperties_bldg"" ON (""nsproperties_apt"".""bldg_id"" = ""nsproperties_bldg"".""id"")
      WHERE ST_Within(""nsproperties_bldg"".""geo"",
                      ST_GeomFromEWKB(E'\\001\\003\\000\\000 \\346\\020\\000\\000\\001\\000\\000\\000\\005\\000\\000\\000\\000\\000\\000\\000\\024\\333\\200@\\334\\302Z\\310\\321\\177V\\300\\000\\000\\000\\000\\024\\333\\200@t""\\271,\\272\\177V\\300\\000\\000\\000\\0008\\230\\201@t""\\271,\\272\\177V\\300\\000\\000\\000\\0008\\230\\201@\\334\\302Z\\310\\321\\177V\\300\\000\\000\\000\\000\\024\\333\\200@\\334\\302Z\\310\\321\\177V\\300'))LIMIT 21
}}}

"		closed	GIS	1.2		invalid		crucialfelix@…	Unreviewed	0	0	0	0	0	0
