将字典中的值复制到Python中的对象中

时间:2009-10-23 17:15:52

标签: python django

我有一个字典,我想迭代并将键值对复制到Python中的对象中。字典是POST,对象是模型(在Django中,也许Django有更好的方法可以做到这一点)。

在PHP中,我可以使用变量赋值:

foreach($post as $key => $value) {
    $my_model->$key = $value;
}

在Javascript中,我可以使用数组赋值处理对象:

for(var key in post) {
    my_model[key] = post[key];
}

但是,我似乎无法在Python中这样做。我见过的唯一方法是使用对象__dict__属性,它感觉有点脏。另外它可以引发KeyErrors。

2 个答案:

答案 0 :(得分:5)

for key, value in post.iteritems():
    setattr(my_model, key, value)

答案 1 :(得分:4)

您可以使用setattr,但在您的上下文中执行此操作可能是错误的。你应该首先看看Django的ModelForms documentation