如何从字典值更新现有模型实例

时间:2013-10-29 23:26:04

标签: python django django-models django-forms django-views

给定模型实例,例如StackOverflow是模型, 和

 obj = StackOverflow.objects.get(..somecondition)
 dict  = { 'rating' : 3, 'field1' : 'question', field2 : 'answer' }

StackOverflow模型将dict中可用的所有键都作为成员变量。

我想用dict值更新obj。

我怎样才能达到同样的目标?

2 个答案:

答案 0 :(得分:1)

obj = StackOverflow.objects.get(pk=1)
d  = { 'rating' : 3, 'field1' : 'question', 'field2' : 'answer' }

for i in d:
    setattr(obj, i, d[i])
obj.save()

这将起作用,假设字典键对应于StackOverflow模型中的字段,字典值是有效字段值。

答案 1 :(得分:0)

尝试:

d  = { 'rating' : 3, 'field1' : 'question', 'field2' : 'answer' }
obj = StackOverflow.objects.filter(pk=1).update(**d)

以下是doc