2016-10-04 7 views
0

私は以下の属性を持つモデルを持っています。MapFieldはDjango Rest Framework Mongoengineに表示されません

class File(DynamicDocument): 
    country = fields.StringField(max_length=100, unique=True) 
    languages = fields.MapField(fields.MapField(
     fields.EmbeddedDocumentField(AudioImage))) 

私は次のようにDjangoの休憩FrameworkのMongoengineを使用しようとしています:

from rest_framework_mongoengine.serializers import DocumentSerializer 

class TestSerializer(DocumentSerializer): 
    class Meta: 
     model = File 

それは単に次のように出力できます:

enter image description here

をしかし、私はそれが木に対処したいですAudioImageクラスのすべてのフィールドも同様の構造になっています。 私は何かを見逃しましたか?またはMapFieldには別の方法がありますか?

{ 
    "country": "UK", 
    "languages": { 
     "hindi": AudioImageJSON, 
     "russian": AudioImageJSON, 
     "cockney": AudioImageJSON 
    } 
} 

AudioImageJSONの構造はEmbeddedDocumentを対応させて説明されています

答えて

1

Sijan、それはあなたがあなたのFile文書は次の構造を持つようにしたいということが正しいのですか?その場合

、あなたのDocumentSerializerは正しく、次のようにあなたのモデルを指定:

class AudioImage(EmbeddedDocument): 
    content = fields.FileField() 

class File(DynamicDocument): 
    country = fields.StringField(max_length=100, unique=True) 
    languages = fields.MapField(fields.EmbeddedDocumentField(AudioImage)) 

注意を閲覧可能なAPIがEmbeddedDocumentフィールドのネストされたフォーム入力を表示することができませんことを。しかし、まだ生データビューを使用することができます。

関連する問題