4

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"
]
4

2 に答える 2

7

これに対する答えは v3 で変更されました。それを行う新しい方法は次のとおりです。

class NodeTagSerializer(serializers.ModelSerializer):
  def to_representation(self, obj):
      return obj.name
于 2015-08-12T07:41:40.773 に答える
4

to_native() メソッドをオーバーライドして、タグ名を直接返すことができます (未テスト):

class NodeTagSerializer(serializers.ModelSerializer):
    def to_native(self, obj):
        return obj.name
于 2013-11-06T01:22:03.750 に答える