如何将地理位置重复为结构化属性?

我的代码如下所示:

class MyModel(EndpointsModel):
    segments = ndb.StructuredProperty(ndb.GeoPt, repeated=True)


当我尝试运行代码并创建MyModel实例时,出现以下错误:

AttributeError: type object 'GeoPt' has no attribute '_has_repeated'

How to find out if a model class is db or a ndb似乎暗示_has_repeated是特定于ndb模型的属性,而https://cloud.google.com/appengine/docs/python/ndb/properties#structured
 似乎暗示ndb.GeoPt与db.GeoPt相同。

最佳答案

为什么要对结构化属性使用GeoPt?只需使用以下内容:

class MyModel(EndpointsModel):
  segments = ndb.GeoPtProperty(repeated=True)


但是,如果要与每个GeoPt对象一起存储额外的信息,请使用如下结构化属性:

class GeoPtWithStruct(ndb.Model):
  geo = ndb.GeoPtProperty()
  bla = ndb.StringProperty()

class MyModel(EndpointsModel):
  segments = ndb.StructuredProperty(GeoPtWithStruct, repeated=True)

关于python - ndb.GeoPt的重复StructuredProperty,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26542715/

10-12 21:24