Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将字典中的值保存在运行for循环的django字段中_Python_Django_Python 3.x_Dictionary - Fatal编程技术网

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

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

我正在django中发送一个带有key as model字段的字典,并希望将它们保存为运行
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
设置为字典中的所有值,并且仅拾取最后一个值。