Python 将字典中的值保存在运行for循环的django字段中
我正在django中发送一个带有key as model字段的字典,并希望将它们保存为运行Python 将字典中的值保存在运行for循环的django字段中,python,django,python-3.x,dictionary,Python,Django,Python 3.x,Dictionary,我正在django中发送一个带有key as model字段的字典,并希望将它们保存为运行for循环,如下所示: for key in dictionary: object.key = dictionary[key] object.save() model = Model(**dictionary) 在这里,键是模型字段的确切名称,但不会保存 例如,如果其中一个键是about,则它试图将值保存在object.key中,而不是object.about 我做错了什么如何运行for
for
循环,如下所示:
for key in dictionary:
object.key = dictionary[key]
object.save()
model = Model(**dictionary)
在这里,键是模型字段的确切名称,但不会保存
例如,如果其中一个键是about
,则它试图将值保存在object.key
中,而不是object.about
我做错了什么如何运行
for
循环以保存对象中的值?您没有正确设置对象上的值。您可以使用setattr
,将字典中的值设置为相应的对象属性
for key in dictionary:
setattr(object, key, dictionary[key])
object.save()
save
应在对象中设置所有属性后调用如果没有正确设置对象上的值。您可以使用setattr
,将字典中的值设置为相应的对象属性
for key in dictionary:
setattr(object, key, dictionary[key])
object.save()
save
应在对象中设置所有属性后调用您可以通过将Django模型的属性作为kwargs传递给构造函数来实例化该模型,例如:
model = Model(attr1=value1, attr2=value2)
这意味着您可以根据字典实例化模型,如下所示:
for key in dictionary:
object.key = dictionary[key]
object.save()
model = Model(**dictionary)
您可以通过将Django模型的属性作为kwargs传递给构造函数来实例化该模型,例如:
model = Model(attr1=value1, attr2=value2)
这意味着您可以根据字典实例化模型,如下所示:
for key in dictionary:
object.key = dictionary[key]
object.save()
model = Model(**dictionary)
你能举一个
字典
的例子吗?你能举一个字典
的例子吗?它很好用,我会接受的。但是如果你能解释一下为什么我这样做,为什么它不起作用,为什么setattr起作用,那就太好了。这可能是一个很大的帮助。一个例子。当key='about'
时,settattr
从dictionary['about']
获取值,并将其设置为object.about
。对字典中的所有键重复此操作。在循环(不在循环中)之后,调用save
,以避免每次设置属性时都进行保存。您尝试的方法将尝试仅将对象设置为字典中的所有值,并且仅拾取最后一个值。它工作正常,我将接受它。但是如果你能解释一下为什么我这样做,为什么它不起作用,为什么setattr起作用,那就太好了。这可能是一个很大的帮助。一个例子。当key='about'
时,settattr
从dictionary['about']
获取值,并将其设置为object.about
。对字典中的所有键重复此操作。在循环(不在循环中)之后,调用save
,以避免每次设置属性时都进行保存。您尝试的方法将尝试仅将object.key
设置为字典中的所有值,并且仅拾取最后一个值。