BadValueError:预期的GeoPt

时间:2013-09-16 20:35:47

标签: google-app-engine geolocation google-cloud-datastore geocoding

我正在尝试将值从html表单传递到gae数据存储区并收到以下错误:

“BadValueError:期望的GeoPt,得到(51.123,-0.123)”

预先道歉,但我是新手,所以可能会出错,但我真的很感激有关这方面的最佳方法的建议。

提前致谢。

2 个答案:

答案 0 :(得分:6)

您似乎正在尝试将元组分配给属性而不是geopt。

您的代码执行此操作:

entity.some_geo_property = (51.123, -0.123)

需要这样做的地方:

from google.appengine.ext import ndb

entity.some_geo_property = ndb.GeoPt(51.123, -0.123)

或者使用元组:

entity.some_geo_property = ndb.GeoPt(*value)

如果没有看到您的确切代码,很难提供完整的解决方案。如果您提供代码,我会尝试更新我的答案。

答案 1 :(得分:1)

我从未使用GeoPt属性,但我认为你通过了两个花车的元组。

首先将值传递给ndb.GeoPt()并将返回值存储在NDB中。例如:

location = ndb.GeoPt(51.123, -0.123)

如果使用HRD的DB API而不是NDB API,请使用基本相同的db.GeoPt()。