在googleappengine中将用户提供的属性(在运行时)添加到Expando类的实例中?

2024-10-01 17:23:57 发布

您现在位置:Python中文网/ 问答频道 /正文

通过创建继承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!!'

这可能吗?如果是,怎么办? 我已经试过好几种方法,但都没有成功。在

提前谢谢。在


Tags: name模型dbby动态propertywhatone
2条回答

刚刚找到了我自己问题的答案。这真的很简单,但由于我是一个python noob,我最后把你在上面看到的问题贴了出来。在

对于我使用的代码示例,需要做的是:

entity_two.__setattr(some_variable, some_value) #where some_variable is populated by user at runtime :)

通常,我们直接使用setattr函数。在

setattr( entity_two, 'some_variable', some_value )

相关问题 更多 >

    热门问题