2012-08-10 14 views
16

En lugar de un solo StringProperty(), Quiero guardar una lista de cadenashace NDB tiene una lista de propiedades

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

preferiría ir

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

Respuesta

30

sí, utilizar una propiedad repetida :

Cualquier propiedad con repeat = True se convierte en una propiedad repetida. La propiedad toma una lista de valores del tipo subyacente, en lugar de un valor único de . Por ejemplo, el valor de una propiedad definida con IntegerProperty (repeat = True) es una lista de enteros.

ver los documentos: Repeated Properties

+1

tenga en cuenta que el programador debe asegurarse de que la longitud de la lista sea 3 (si solo desea una lista de longitud 3) –

6

también si sólo está operativo en las listas y que no necesita la indexación puede utilizar el ndb.JsonProperty que analizar una lista con válidos objetos no vacías JSON. De esta forma, también puede comprimir sus datos, pero pierde la indexación si no lo habilita como arg, porque está almacenado como Blob.

Cuestiones relacionadas