我正在努力找出如何根据相当常见的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'
小便是否支持这个?我无法在文档中找到它。
答案 0 :(得分:3)
Peewee的联接生成检查表达式但不检查函数调用。我在61034c569e9679832327332aee0348a57a2b990c修复了这个错误。如果您使用peewee master,您应该能够立即运行查询。