在运行for循环的django字段中保存字典中的值

时间:2016-06-13 21:38:59

标签: python django python-3.x dictionary

我正在发送一个字典作为django中的模型字段,并希望保存它们运行for循环,如下所示:

for key in dictionary:
    object.key = dictionary[key]
    object.save()

这里,键是模型字段的确切名称,但它没有被保存。

例如,如果其中一个键为about,则会尝试将值保存在object.key而不是object.about

我做错了什么? 如何运行for循环以便将值保存在对象中?

2 个答案:

答案 0 :(得分:4)

您可以通过将其属性作为kwargs传递给构造函数来实例化Django模型,例如:

model = Model(attr1=value1, attr2=value2)

这意味着你可以根据你的字典实例化一个模型:

model = Model(**dictionary)

答案 1 :(得分:1)

您未正确设置对象的值。您可以使用setattr将字典中的值设置为相应的对象属性

for key in dictionary:
    setattr(object, key, dictionary[key])
object.save()
在对象

中设置了所有属性后,应调用

save