通过创建继承自Expando类的数据存储模型,我可以 使我的模型实体/实例具有动态属性。那是 大!但我想要的是这些动态属性的名称 在运行时确定。这可能吗?
例如,
class ExpandoTest (db.Expando):
prop1 = db.StringProperty()
prop2 = db.StringProperty()
entity_one = ExpandoTest()
entity_two = ExpandoTest()
# what I do not want
entity_one.prop3 = 'Demo of dynamic property'
# what I want
entity_two.<property_name_as_entered_by_user_at_runtime> = 'This
property name was entered by the user, Great!!'
这可能吗?如果是这样,怎么样? 我已经尝试了几种方法来做到这一点,但没有成功。
提前致谢。
答案 0 :(得分:3)
通常,我们直接使用setattr函数。
setattr( entity_two, 'some_variable', some_value )
答案 1 :(得分:0)
刚刚找到了我自己的问题的解决方案。这真的很简单,但因为我是一个python noob,我最后发布了你在上面看到的问题。
对于我使用的代码示例,这是需要做的事情:
entity_two.__setattr(some_variable, some_value) #where some_variable is populated by user at runtime :)