如何将地理点重复为结构化属性?
我的代码如下所示:
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相同。
答案 0 :(得分:2)
为什么要将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)