Django Rest Framework dict字段列表

ePa*_*oal 5 python django rest dictionary

我正在尝试使用Django REST Framework将两个模型字段序列化为一个dicts列表.

这是我的model.py:

class Translation(models.Model):
    translated_term = models.CharField(max_length=200)
    translated_meaning = models.TextField()
    language = models.CharField(max_length=200)
    vocab = models.ForeignKey(Vocab, related_name='translates')

    def __unicode__(self):
            return  '%s: %s' % ( self.language,self.translated_term)
Run Code Online (Sandbox Code Playgroud)

view.py:

class VocabViewSet(viewsets.ModelViewSet):

    queryset = Vocab.objects.all()
    serializer_class = VocabSerializer
Run Code Online (Sandbox Code Playgroud)

serializer.py:

class VocabSerializer(serializers.ModelSerializer):
    ...
        translates= serializers.StringRelatedField(many=True)
    ...

        class Meta:
        model = Vocab
                fields = (...,'translates',...)
Run Code Online (Sandbox Code Playgroud)

Api结果:

{
 .....
    "translates": [
        "EN: Abyssal zone"
    ],
 ....
}
Run Code Online (Sandbox Code Playgroud)

我的问题是如何将我的翻译设置为这样的词组列表:

预期的API结果:

  {
 .....
    "translates": [
        {EN: "Abyssal zone"}
    ],
 ....
}
Run Code Online (Sandbox Code Playgroud)

我正在关注文档,但我不知道这是否是一种写法.我试着使用serializers.DictFields像这样:

class translateField(serializers.DictField):
    child = serializers.CharField()

class VocabSerializer(serializers.ModelSerializer):
    term_word = serializers.CharField(source='term.word',read_only=True)
    kwdGroup = serializers.StringRelatedField()
    translates = serializers.DictField(child=serializers.CharField())

    class Meta:
        model = Vocab
        fields = ('uuid','id','term_word', 'meaning', 'source', 'translates','kwdGroup')
Run Code Online (Sandbox Code Playgroud)

它发生:

'RelatedManager'对象没有属性'items'

我很难找到克服这个问题的方法.你能否就这个问题向我提出意见?任何建议都会很棒.

谢谢.