2009-08-19 7 views
1

Je dois enregistrer dans mon modèle une liste d'objets d'une certaine classe sur le magasin de données.Google App Engine: Enregistrement d'une liste d'objets?

Existe-t-il un moyen simple de l'archiver avec ListProperty et des propriétés personnalisées sans aller dans des données blob pickled/simplejson?

Je veux juste quelque chose comme ceci:

class Test: 
    pass 

class model(db.Model): 
    list = db.ListProperty(Test) 

regardant la documentation GAE Je ne peux pas vraiment dire si cela est impossible avec la version actuelle ou non. J'essayais d'éviter le décapage parce qu'il est lent et qu'il a des limites de taille.

+0

merci pour confirmer mon assesment. J'aimerais juste avoir tort. – fabiopedrosa

Répondre

1

Vous ne pouvez stocker qu'un ensemble limité de types directement dans la banque de données. Pour stocker vos propres types, vous devez les convertir d'une manière ou d'une autre en l'un des types acceptés - le décapage est une approche courante, tout comme la sérialisation en JSON. La limite de taille n'est pas propre au décapage: 1 Mo est la plus grande entité que vous pouvez insérer, quels que soient les champs et les types.

0

Vous pouvez enregistrer vos objets de test directement dans le magasin de données en créant un modèle de test/un type d'entité. Sinon, vous devrez les sérialiser d'une manière ou d'une autre (en utilisant quelque chose comme pickle ou json)

0

Vous pourriez avoir une liste de clés ou vous pourriez donner des entités « d'essai » d'un parent qui est une entité de votre classe « modèle »