2012-07-14 14 views
7

djangoでモデルインスタンスのjson表現を指定してモデルインスタンスを更新するには、どのような方法が最適です。JSONをDjangoのモデルインスタンスに変換する

正しい方法でデシリアライズしていますか?チュートリアルはありますか?

+0

あなたは[このページを見てきましたDjangoのモデルのシリアル化](https://docs.djangoproject.com/ja/dev/topics/serialization/)? –

+0

はい - でも問題はあります。私はサーバーに渡しているJSONオブジェクトは、モデルのすべてのデータを(ちょうどpkを含む)その一部を持っていません。そして、そのコードに基づいてモデルを更新したいと思います。 –

答えて

11

最良の方法は、モデルインスタンスのシリアル化をサポートするexisting Django applicationsのいずれかをJSONとの間で使用することです。

どちらの場合でも、JSONオブジェクトをPython辞書に解析すると、基本的にQuerySet.update()メソッドを直接使用できます。

ので、あなたはすべてのキー属性をモデル化するためにマップする辞書を取得し、彼らは更新したいと思い値を表すと言う、あなたはこれを行うことができます:

updates = {         # Our parsed JSON data 
    'pk': 1337, 
    'foo': 'bar', 
    'baz': 192.05 
} 

id = updates.pop('pk')       # Extract the instance's ID 
Foo.objects.filter(id=id).update(**updates) # Update the instance's data 
関連する問題