Skip to main content
 首页 » 编程设计

python之如何使用表达式作为关键字在django中保存

2025年02月15日30jyk

我想通过迭代对象数组在模型/表的单个列中创建一个条目。对象数组是这样的:

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'] ) 

有人可以帮我想办法解决这个问题吗?

请您参考如下方法:

您可以将数据放入字典中,然后使用解包将它们传递给模型类:

for data in arr: 
    obj = modelObject(**{data['field_name']: data['field_value']}) 
    obj.save() 

请记住添加对新创建对象的引用,并使用该引用将每个对象保存在 for 循环中。