Google App Engine NDB重复了属性附加信息

时间:2012-08-18 12:51:52

标签: google-app-engine python-2.7 app-engine-ndb

例如:我有一个带有重复“标题”属性的文章模型,该属性存储了原始标题的不同语言的翻译:

class Article(ndb.Model):
  title = ndb.StringProperty(repeated=True)

除了title属性之外,我还可以存储标题的语言代码,因此我可以获得标题的特定版本,如下所示:

en_title = article.title['en']

拥有相同的属性名称非常重要,因为我不知道将以什么语言查询文章标题。

2 个答案:

答案 0 :(得分:3)

您可以使用重复的结构属性:

class Title(ndb.Model):
  title = ndb.StringProperty()
  lang = ndb.StringProperty()

class Article(ndb.Model):
  titles = ndb.StructuredProperty(Title, repeated=True)

答案 1 :(得分:3)

您在查询标题或语言吗?如果没有,您可以使用PickleProperty或JsonProperty来存储字典。