2012-09-12 1 views
10

Ich bin mir nicht sicher, ob es sich um einen Fehler in der MongoEngine handelt oder ob ich etwas vermisse. Ich habe die folgenden Modelle aufgebaut:MongoEngine ListField innerhalb eines EmbeddedDocuments löst TypeError bei der Validierung aus

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

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

Wenn ich meine Modelle wie dies testen:

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

ich die folgende Fehlermeldung erhalten:

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

Kann jemand das erklären?

BEARBEITEN Sie:

Nevermind. Ich habe meinen Fehler gefunden.

Es muss sein:

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

Sie buchen sollten Sie Ihre Antwort und die Fragezeichen als beantwortet! – Ross

+1

Ich habe vergessen. Vielen Dank. – Karsten

Antwort

13

ich den Fehler gefunden.

Es muss sein:

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