2012-09-12 12 views
10

No estoy seguro de si es un error dentro de MongoEngine o si omito algo. he puesto los siguientes modelos de hasta:MongoEngine ListField dentro de EmbeddedDocument arroja TypeError en la validación

class Features(EmbeddedDocument): 
    version = FloatField() 
    data = ListField(StringField) 

class Article(Document): 
    vendor = ReferenceField(Vendor) 
    url = URLField() 
    author = StringField() 
    clean_content = StringField() 
    features = EmbeddedDocumentField(Features) 

Cuando pruebo mis modelos como este:

#add vendor 
vendor = Vendor(name="techcrunch", config="vendor config") 
vendor.save() 

#create features 
features = Features(version = 1.0) 
features.data = ["5", "89"] 

#add article 
article = Article(vendor = vendor, url ="http://www.techcrunch.com", 
        author ="MG Siegler", clean_content = "Apple rocks!") 
article.features = features 
article.save() 

me sale el siguiente error:

TypeError: unbound method _validate() must be called with StringField instance as first argument (got str instance instead) 

Puede alguien explicar eso?

EDITAR:

Nevermind. Encontré mi error

Tiene que ser:

class Features(EmbeddedDocument): 
    version = FloatField() 
    data = ListField(StringField()) 
+1

Usted debe enviar su respuesta y marcar la pregunta como respondida! – Ross

+1

Lo olvidé. Gracias. – Karsten

Respuesta

13

He encontrado el error.

Tiene que ser:

class Features(EmbeddedDocument): 
    version = FloatField() 
    data = ListField(StringField()) 
Cuestiones relacionadas