2012-09-12 3 views
10

MongoEngine 내의 버그인지 또는 뭔가를 놓친 경우 확실하지 않습니다. 나는 다음과 같은 모델 설정 한 :MongoEngine ListField가 EmbeddedDocument 내 유효성 검사시 TypeError를 던졌습니다.

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

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

나는 이런 내 모델을 테스트 :

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

나는 다음과 같은 오류 얻을 :

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

누군가가 그것을 설명 할 수 있습니까?

편집 :

Nevermind. 나는 내 잘못을 발견했다.

이 있어야한다 :

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

당신은 당신의 대답을 게시하고 대답으로 질문을 표시해야합니다 :

그것은 할 수있다! – Ross

+1

깜빡했습니다. 감사. – Karsten

답변

13

나는 오류를 발견했다.

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