修改Django模型有多难?

2024-06-06 23:21:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我在做地理定位,Django没有点域。所以,我不得不用原始SQL编写。Django库GeoDjango不支持以下MYSQL数据库查询(有人能帮我验证一下吗?)在

 cursor.execute("SELECT id FROM l_tag WHERE\
               (GLength(LineStringFromWKB(LineString(asbinary(utm),asbinary(PointFromWKB(point(%s, %s)))))) < %s + accuracy + %s)\

我不明白为什么GeoDjango库不能在MYSQL数据库中这样做。我讨厌用原始SQL来计算两点之间的距离。有没有办法可以为Django创建自己的库来处理这个问题?如果是这样,有多难?在


Tags: djangofrom定位id数据库executesqltag
2条回答

你为什么不扩展一个已经存在的类呢?只是好奇,希望我能具体帮助你。在

GeoDjango确实有一个点域。在

看起来您正在尝试执行dwithin字段查找,这在MySQL上不起作用(截至2010年4月),但在Postgres中可以:

类标记(型号): 点域=点域()

在Tag.objects.filter标签(点_udwithin=(点,D(mi=4)))

注意这种查询,因为它需要表扫描。如果可以选择矩形区域内的所有点,则可以使用包含边界框的查询:

在Tag.objects.filter标签(所含点=geom)

其中geom是一个多边形。在

相关问题 更多 >