2017-10-18 79 views
0

运行到一个属性错误:mongoengine属性错误 - 下面的代码蟒蛇

from mongoengine import * 
import datetime 
from bson import ObjectId 



class Doc_1(EmbeddedDocument): 
    criteria_id = ObjectIdField(default=ObjectId) 
    field_name = StringField() 
    field_value =DynamicField() 
    dominant = BooleanField() 

class Doc_2(Document): 
    created_date = DateTimeField(default=datetime.datetime.now) 
    type = StringField(required=True) 
    state = StringField(required=True) 

d1 = Doc_1() 
d1.field_name = "state" 
d1.field_value = [a, b, c, d, e] 
d1.save() 

d2 = Doc_2() 
d2.type = "Demo" 
d2.state = "c" 
d2.save() 

def field_match(Doc_1, Doc_2): 
    x = Doc_1.field_name 
    y = Doc_1.field_value 
    if Doc_2.x in y: 
     print("Yes") 

field_match(Doc_1, Doc_2) 

AttributeError的:“Doc_2”对象有没有属性“X”

我如何在函数中正确使用mongoengine中的变量?

+1

此问题与“在函数中使用变量”无关。 –

回答

0

的回答很简单,我有点不好意思......

功能应该使用周围的变量不是括号“”

def field_match(Doc_1, Doc_2): 
x = Doc_1.field_name 
y = Doc_1.field_value 
if Doc_2[x] in y: 
    print("Yes")