Ошибка из вложенного запроса с GeoDjango - PullRequest
2 голосов
/ 22 июля 2011

У меня проблемы с построением вложенных запросов с использованием in поиска полей в GeoDjango. Следующий код демонстрирует проблему:

inner_qs = Footprint.objects.filter(geom__bboverlaps=bounding_box)
outer_qs = Footprint.objects.filter(pk__in=inner_qs)
outer_qs.count()
# error

При использовании приведенного выше кода возникает следующее исключение:

if (len(params) == 1 and params[0] == '' and lookup_type == 'exact'
  File "../python2.6/site-packages/django/contrib/gis/db/backends/postgis/adapter.py", line 24, in __eq__
    return (self.ewkb == other.ewkb) and (self.srid == other.srid)
AttributeError: 'str' object has no attribute 'ewkb'

(Вот полная трассировка стека )

Похоже, что ошибка возникает всякий раз, когда внутренний запрос содержит пространственный фильтр. Хотя следующий вложенный запрос работает нормально:

inner_qs = Footprint.objects.filter(frequency__gt=1)
outer_qs = Footprint.objects.filter(pk__in=inner_qs)
outer_qs.count()
# ok

Есть идеи, что вызывает проблему?

...