1

我正在为我的宠物项目尝试geodjango,除了例外,一切看起来都很好......

在我的模型中,我有一个这样的字段:

coordinates= models.PointField(srid=4326,default='POINT(0.0 0.0)')

并且我的管理员扩展自admin.OSMGeoAdmin但当我在管理员中打开一个新模型实例时,我没有看到地图中选择的“0.00,0.00”点,如果我尝试保存文档,我会得到“没有几何值假如'。就像管理员无法将点放在地图上一样。

此外,如果我尝试使用 shell,我可以保存没有问题的实例并获取默认值 POINT(0.0 0.0) 的字段。

我在管理员中遗漏了什么吗?

感谢您的任何提示!

4

2 回答 2

3

我有同样的问题。有点奇怪。发布的内容毫无意义。在点击提交时,textarea 具有正确的几何值(因为我在输出我这个值的表单上放置了一个 onsubmit)。但是提交的不是那个值。所以我关掉了JS……哇。提交了正确的值,我有点高兴,但这不是解决方案。但是我不知道javascript在做什么。我已经用 Django 1.3 和 1.4 试过了。你有运气吗?

更新。另一个“解决方案”...覆盖 openlayers.html 并将 textarea 转换为标准文本输入。哇。再次工作。

解决了!

所以我的挖掘了一些......但我的管理员使用tinymce...... Tinymce在textareas上工作是的......好吧,它搞砸了小部件textarea,但一直如此安静。

editor_deselector:“vWKTField”

于 2012-10-13T15:57:49.583 回答
2

好吧,在玩弄了打开的 layers.html 之后(感谢嘈杂的锅炉!)我发现 OSMGeoAdmin 上有一个属性display_wkt,将其设置为True将显示 textArea 而不会破坏模板。

对于具有现有点的条目,它包含以下格式的值:

SRID=3857;POINT(890338.8453418 -1109499.0330941)

所以我只是将我的点场更改为:

coordinates= models.PointField(srid=4326,default='SRID=3857;POINT(0.0 0.0)')

我从Spherical Mercator了解到的是 4326 用于二维地图,但似乎谷歌地图使用 3857,其中包括球面投影。

现在有效!

于 2012-10-16T01:33:56.650 回答