ndb有一个列表属性

时间:2012-08-10 04:58:20

标签: python google-app-engine list google-cloud-datastore

而不是单个StringProperty(), 我想存储一个字符串列表

class BlogPost(ndb.Model):
    s1 = ndb.StringProperty(required=True)
    s2 = ndb.StringProperty(required=True)
    s3 = ndb.StringProperty(required=True)

我宁愿去

class BlogPost(ndb.Model):
    my_strings = ndb.StringListProperty() # does this exist?

2 个答案:

答案 0 :(得分:31)

是的,使用重复的属性:

  

任何具有重复= True的属性都将成为重复属性。该   property获取基础类型的值列表,而不是a   单一价值。例如,使用定义的属性的值   IntegerProperty(repeated = True)是一个整数列表。

请参阅文档:Repeated Properties

答案 1 :(得分:6)

此外,如果您只在列表上操作而不需要建立索引,则可以使用ndb.JsonProperty来解析具有非空有效 Json对象的列表。通过这种方式,还可以压缩您的数据,但如果您不将其作为arg启用,则会丢失索引,因为它存储为Blob。