get_字段不工作Django Rest框架序列化程序

2024-09-30 02:34:24 发布

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

在serializers.py中

class WordSerializer(serializers.ModelSerializer):
    synonym = serializers.ListField(child=serializers.CharField(max_length=100), allow_null=True)

    class Meta:
        model = Word
        fields = ['word', 'id', 'user', 'definition', 'synonym', 'sentence', 'user', 'currently_studying']

当原始模型的同义词值为synonym1\nsynonym2\nsynonym3时,序列化程序中的同义词值应返回['synonym1', 'synonym2', 'synonym3']。我该怎么做


Tags: pychildlengthmaxclasscharfieldallow同义词
1条回答
网友
1楼 · 发布于 2024-09-30 02:34:24

它不适用于同义词字段,因为无法将值的类型从字符串更改为列表,但我们可以向json输出中添加自定义字段。这里有一个例子。json输出中的键是“synonym_list”,如果要更改它,只需更改SerializerMethodField()的名称和方法名称(get_+new_name),并在字段列表(Meta类)中相应地更改它:

class WordSerializer(serializers.ModelSerializer):
    synonym_list = serializers.SerializerMethodField()

    class Meta:
        model = Word
        fields = ['word', 'id', 'user', 'definition', 'synonym', 'sentence', 'user', 'currently_studying', 'synonym_list']

    def get_synonym_list(self, obj):
        return obj.synonym.split("\n")

这对你有用吗

相关问题 更多 >

    热门问题