我有一个实体其中有一个可变数量的另一个实体(所以我使用Structured Property,重复= True),但是这个属性也可以保存可变数量的单个实体类型。所以我的代码如下所示:StructuredProperty在另一个StructuredProperty中。如何?
class Property(ndb.Model):
name = ndb.StringProperty()
cost = ndb.FloatProperty()
type = ndb.StringProperty()
class SpecialProperty(ndb.Model):
name = ndb.StringProperty()
properties = ndb.StructuredProperty(Property, repeated=True)
type = ndb.StringProperty()
class Hotel(ndb.Model):
specialProperties = ndb.StructuredProperty(SpecialProperty, repeated=True)
但是,当我尝试这个GAE会引发错误。 “TypeError:此StructuredProperty不能使用重复= True,因为它的模型类(SpecialProperty)包含重复的属性(直接或间接)。”
那么我怎么能绕过这个? 我真的需要有这个灵活的结构。
非常感谢提前。
这是一个伟大的爱好。谢谢!但我会在这个项目中使用LocalStructuredProperty – momijigari
欢迎回到关系数据库。我看到的是,应用引擎不支持超过1级的嵌套属性。我会建议人们首先设计模型关系,以避免这种限制。 –
@MaxTsepkov如果您无法查询重复的子对象值,那么您的观察结果似乎基本正确。对这个问题进行更长时间的讨论会很好。不幸的是,我发现所有的讨论都是琐碎的例子。也许我们需要的是Google ZopeEngine! –