dict字段的Django Rest框架列表

2024-06-07 03:23:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试使用Django REST框架序列化两个模型字段,作为dict列表提供。在

这是我的模型.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)

视图.py

^{pr2}$

序列化程序.py

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

        class Meta:
        model = Vocab
                fields = (...,'translates',...)

Api结果:

{
 .....
    "translates": [
        "EN: Abyssal zone"
    ],
 ....
}

我的问题是如何将我的翻译设置为一个如下的dicts列表:

预期API结果:

  {
 .....
    "translates": [
        {EN: "Abyssal zone"}
    ],
 ....
}

我遵循docs,但我不知道这是否是一种写入方式。我试着用序列化程序.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')

它发生在:

'RelatedManager' object has no attribute 'items'

我很难找到解决这个问题的方法。你能告诉我你对这个问题的看法吗?任何建议都很好。在

谢谢。在


Tags: py模型self列表序列化modelsmaxclass