如何加入Peewee的空间功能?

时间:2015-04-27 05:44:24

标签: postgis peewee

我正在努力找出如何根据相当常见的postgis模式加入Peewee中的表格。我需要基于postgis函数(st_contains)加入一个表。我想它看起来像是:

Station.select().join(Location, on=fn.ST_Intersects(Station.geom, Location.geom)).where(Location.name == 'Ravenswood')

如果支持,上述查询将返回名为Ravenswood的位置中的所有站点。等效的SQL将是:

SELECT station.name, station.district, station.line
FROM station INNER JOIN location ON ST_Intersects(station.geom, loc.geom)
WHERE location.name = 'Ravenswood';

不幸的是,我的实验似乎都以这个缩写的追溯结束:

File "/Users/j.../python2.7/site-packages/peewee.py", line 1555, in generate_joins
left_field = field.to_field
AttributeError: 'NoneType' object has no attribute 'to_field'

小便是否支持这个?我无法在文档中找到它。

1 个答案:

答案 0 :(得分:3)

Peewee的联接生成检查表达式但不检查函数调用。我在61034c569e9679832327332aee0348a57a2b990c修复了这个错误。如果您使用peewee master,您应该能够立即运行查询。