我有一个模型类:
class Person(db.Model):
first_name = db.StringProperty(required=True)
last_name = db.StringProperty(required=True)
我在p
中有一个此类的实例,字符串s
包含值'first_name'
。我想做点什么:
print p[s]
和
p[s] = new_value
两者都会产生TypeError
。
有人知道我怎么能达到我想要的目的吗?
答案 0 :(得分:7)
如果模型类足够智能,它应该识别标准的Python方法。
尝试:
getattr(p, s)
setattr(p, s, new_value)
还有hasattr可用。
答案 1 :(得分:3)
非常感谢Jim,我正在寻找的确切解决方案是:
p.properties()[s].get_value_for_datastore(p)
对所有其他受访者,谢谢你的帮助。我也希望Model类能够实现python标准的方法,但无论出于何种原因,它都没有。
答案 2 :(得分:1)
getattr(p, s)
setattr(p, s, new_value)
答案 3 :(得分:1)
答案 4 :(得分:-1)
p.first_name =“新名字” p.put()
或p = Person(first_name =“Firsty”, last_name =“Lasty”) p.put()