2016-06-19 13 views
0

JSONフィールドextra_dataがモデルに追加されている可能性があります。初めから、どれくらいのフィールドが強制的なフィールドとは別に追加されるかわからないので、extra_dataフィールドを導入しました。django restフレームワークで複雑なフィールドをシリアライズ

[ 
    { 
     "code": "1", 
     "name": "Moscow", 
     "extra_data": { 
      "type": "Region" 
     } 
    }, 
    { 
     "code": "2", 
     "name": "Tatarstan", 
     "extra_data": { 
      "type": "Republic", 
      "capital": "Kazan" 

     } 
    } 
] 

しかし、私は何かを必要とすることは、このようなものです::私は現在、このような何かを持っている通常の残りのフレームワークのシリアライズで

[ 
    { 
     "code": "1", 
     "name": "Moscow", 
     "type": "City" 
    }, 
    { 
     "code": "2", 
     "name": "Tatarstan", 
     "type": "Republic", 
     "capital": "Kazan" 
    } 
] 

私は助けを必要としてください、私はに新たなんですdjango

答えて

1

シリアライザそのものは、そこにいくつのフィールドがあるか分からないので、私はこれを行うことはできないと思います。しかし、あなたがserializer.dataを得れば、あなたのようなあなたの辞書を更新することがあります。

serializer_data = serializer.data 
extra_data = serializer_data.pop('extra_data') 
serializer_data.update(extra_data) 
return serializer_data 

私はので、私はシリアライザをwithingことを行うための方法がないことを確認してくださいためにあなたを言っていないよジャンゴには専門家ですしかし、私は考えることができません

+0

提案してくれてありがとう、それは本当に素晴らしいものですし、私はシリアライザでそれを行う方法を見つけることができない場合は、私はあなたのアプローチを検討します:) – Ken4scholars

関連する問題