2012-09-12 10 views
10

Non sono sicuro se si tratta di un bug all'interno di MongoEngine o se mi manca qualcosa. Ho i seguenti modelli di impostare:Lista MongoEngine all'interno di un documento Embedded genera ErroreErrore sulla convalida

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

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

quando verifico i miei modelli come questo:

#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() 

ottengo il seguente errore:

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

qualcuno può spiegare questo?

MODIFICA:

Nevermind. Ho trovato il mio errore.

Deve essere:

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

Si consiglia di inviare la tua risposta e segnare la domanda come risposta! – Ross

+1

Ho dimenticato. Grazie. – Karsten

risposta

13

Ho trovato l'errore.

deve essere:

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