我想通过迭代一个对象数组在模型/表的单个列中创建一个条目。对象数组是这样的:
arr = [
{ "field_name" : "email", "field_value" : "abc@abc.com" },
{ "field_name" : "name", "field_value" : "Abc Xyz" },
{ "field_name" : "gender", "field_value" : "M" }
]
我想要像这样保存数据:
| **email** | **name** | **gender** |
| abc@abc.com | Abc Xyz | M |
假设我有一个名为“model_name”的模型,那么我写的代码是这样的:
modelObject = model_name()
for data in arr:
modelObject( data['field_name'] = data['field_value'] )
modelObject.save()
我希望将这些数据保存在单行中,因为数据对应于单个列。但是我写的代码是“关键字不能是表达式”错误在行:
modelObject( data['field_name'] = data['field_value'] )
有人能帮我解决这个问题吗?
答案 0 :(得分:1)
您可以将数据放入字典中,并使用解包将它们传递给模型类:
for data in arr:
obj = modelObject(**{data['field_name']: data['field_value']})
obj.save()
请记住添加对新创建对象的引用,并使用引用将每个对象保存在for
循环中。
答案 1 :(得分:0)
您应该将arr
转换为字段名称和值的字典,然后将其解压缩:
obj = modelObject(**{data['field_name']: data['field_value'] for data in arr})
obj.save()