2012-10-11 44 views
1

我想GeoDjango内置为我的宠物项目,一切看起来好有例外提供任何几何值...在GeoDjango内置管理员

在我的模型我有一个领域是这样的:

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

和我的管理员从admin.OSMGeoAdmin扩展,但是当我在管理员中打开一个新的模型实例时,我没有看到在地图中选择的'0.00,0.00'点,如果我尝试保存文档,我会得到'没有几何提供的价值'。就像管理员只是不能在地图上放置点一样。另外,如果我尝试使用shell,我可以保存无w/o问题的实例,并使用缺省值POINT(0.0 0.0)获取字段。

我在管理员中丢失了些什么?

感谢您的任何提示!

回答

2

好了,有了开放layers.html(感谢noisyboiler!)我发现有对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其中包括一个球形投影。

现在的作品!

2

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

更新。一个'解决方案'...重写openlayers.html并将textarea转换为标准文本输入。哇。再次工作。

已解决!

因此,我采取了一些挖掘...但我的管理员使用tinymce ... Tinymce在textareas上工作是啊....它搞砸了小部件textarea,但有史以来这么默默。

editor_deselector:“vWKTField”