django - 在 Django Rest Framework 中,如何将值序列化为值数组而不是对象数组?

标签 django json django-models django-rest-framework

在 Django Rest Framework 中,如何将值序列化为值数组而不是对象数组?这是我的序列化程序代码示例:

class NodeTagSerializer(serializers.ModelSerializer):
    class Meta:
        model = NodeTag
        fields = (
            'name',
        )


class NodeTreeSerializer(serializers.ModelSerializer):
    tags = NodeTagSerializer(required=False)

    class Meta:
        model = NodeTree
        fields = (
            'tags',
        )

这是返回:
"tags": [
    {"name": "Tag1"},
    {"name": "Tag2"}
]

但是我想要:
"tags": [
    "Tag1",
    "Tag2"
]

最佳答案

您可以覆盖 to_native() 方法以直接返回标签名称(未经测试):

class NodeTagSerializer(serializers.ModelSerializer):
    def to_native(self, obj):
        return obj.name

关于django - 在 Django Rest Framework 中,如何将值序列化为值数组而不是对象数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19802158/

相关文章:

python - 通过@property中的字段列表获取相关对象的值

django - 应用程序和模型继承的松散耦合

django - 为什么在 django 项目中更改某些文件后需要重新启动 apache

python - 实现发布-订阅模式时如何在 Django 和 Twisted 之间进行通信?

django - django 模型查询中按 order by 的原始 SQL

java - 如何获得所有答案值?

Django: "created_at"列中的空值违反了非空约束

mysql - 导致 mysql 抛出错误的设置

javascript - 使用数组、对象文字或 JSON 的 javascript 性能更好?

java - 检查 json 是否包含字符串值