如何在Google App Engine的expando类中创建动态字段?

4 投票
2 回答
925 浏览
提问于 2025-04-16 06:57

我有一个叫做widget的数据库扩展类。

我正在传入一个json字符串,然后把它转换成一个字典(dict),接着把这个字典添加到数据存储中。

我想问的是,怎么能遍历我的字典来创建动态字段呢?

widget = Widget.get_by_key_name(key_name)
widget.name = self.request.get('wname')
fields = simplejson.loads(self.request.get('wcontents'))
for k,v in fields.iteritems():
  widget.k = v

这样做会把“k”当作我的字段名,而不是字典中“k”的值。

2 个回答

-3

试试这个:

for k, v in fields.items()
4

语法 widget.k 是在说对象 widget 上的属性 k。如果你想要动态选择要设置哪个属性,可以使用内置的 setattr 方法:

setattr(widget, k, v)

像这样动态设置属性会在那个特定的对象上创建这个字段。

撰写回答