我有旧数据库,需要自定义选择。
在sql中我可以使用:
SELECT x(geometry) FROM table
但我不知道如何在django select中强制使用x()函数。
答案 0 :(得分:1)
您可以使用Expressions创建自定义功能。
class GeoX(Func):
function = 'X'
MyModel.objects.annotate(x=GeoX('field'))
这将导致调用几何X函数,并将其结果注释到模型中标记为x的字段。然而,这是次要的解决方案。更好的解决方案是安装geodjango。这提供了对PostGIS中几乎所有单个功能的完全访问权限。也适用于spatialite和msyql空间扩展。
答案 1 :(得分:1)
我设法使用Func()
来解决问题Func(F('geometry'), function='x')