Python 使用动态字段名更新模型实例

Python 使用动态字段名更新模型实例,python,django,Python,Django,我想做的很简单: f=Foobar.objects.get(id=1) foo='somefield' bar='somevalue' f.foo=bar f.save() 这不起作用,因为它试图更新f对象的“foo”字段,当然它不存在。我如何才能做到这一点?您可以使用: [setattr]是getattr()的对应项。参数是对象、字符串和任意值。该字符串可以命名现有属性或新属性。如果对象允许,函数将值分配给属性 f = Foobar.objects.get(id=1) foo = 'some

我想做的很简单:

f=Foobar.objects.get(id=1)
foo='somefield'
bar='somevalue'
f.foo=bar
f.save()
这不起作用,因为它试图更新f对象的“foo”字段,当然它不存在。我如何才能做到这一点?

您可以使用:

[
setattr
]是
getattr()
的对应项。参数是对象、字符串和任意值。该字符串可以命名现有属性或新属性。如果对象允许,函数将值分配给属性

f = Foobar.objects.get(id=1)
foo = 'somefield'
bar = 'somevalue'
setattr(f, foo, bar) # f.foo=bar
f.save()