2012-08-10 49 views
16

而不是一个单一的StringProperty(), 我想存储串确实NDB有一个列表属性

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? 

回答

30

是,使用重复属性:

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

看到文档:Repeated Properties

+1

注意它是由程序员来确保列表的长度是3(如果你只想要一个长度为3的列表) – 2012-08-10 08:48:49

6

另外,如果你只在列表工作,你不需要索引可以使用ndb.JsonProperty将解析与非空有效 JSON对象的列表。通过这种方式,也可以压缩您的数据,但是如果您不将它作为参数使用,则会丢失索引,因为它存储为Blob。

相关问题