我正在尝试遍历字典和实体。dict键与实体属性匹配的地方,我想将键的值分配为属性的值。
我的模型代码是:
class myModel(db.Model):
Property1 = db.IntegerProperty()
Property2 = db.StringProperty(required=True,choices=set(["this", "that", "other"]))
Property3 = db.StringProperty()
我的字典是:
{u'Property1': u'1234', u'Property2': u'trouble', u'Property3': u'2321'}
我用来遍历这两个对象的代码有效,但是它跳过了模型中的验证。如果我明确分配myModel.Property2 = 'trouble'
,我会收到 BadValueError。但是,在下面的代码中我没有。
for le_attr, le_value in myModel.__dict__.iteritems():
for key, value in Data[0].items():
if ('_' + str(key)) == (str(le_attr)):
myModel.__dict__[le_attr]= value
我的想法是,无论字典中有多少键,只会分配与属性匹配的键,而忽略所有其他键。使用上面的代码,这是可行的。
但是有没有办法做到这一点并且仍然进行验证?