2017-02-15 6 views
2

オブジェクトの配列を反復して、モデル/テーブルの単一の列に項目を作成したいとします。式をキーワードとして使用してdjangoに保存する方法

arr = [ 
     { "field_name" : "email", "field_value" : "[email protected]" }, 
     { "field_name" : "name", "field_value" : "Abc Xyz" }, 
     { "field_name" : "gender", "field_value" : "M" } 
     ] 

私は、データが次のように保存したい:

| **email**   | **name**  | **gender** | 
| [email protected] | 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']) 

は、誰かがこのから抜け出す方法を考え出すに私を助けることができますか?

答えて

1

あなたは辞書にデータを入れてを開梱を使用してモデルクラスに渡すことができます。

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

は、新しく作成されたオブジェクトへの参照を追加し、使用してforループ内の各オブジェクトを保存することを忘れないでください参照。

0

あなたはフィールド名と値の辞書にarrを変換し、それらを解凍する必要があります

obj = modelObject(**{data['field_name']: data['field_value'] for data in arr}) 
obj.save() 
関連する問題