DRF Django: Сериализатор: Как получить список других свойств в отношениях многие-ко-многим

У меня есть следующее

class Foo(models.Model):
    something = models.TextField()
    bars = models.ManyToMany("app.Bar")

class Bar(models.Model):
    example = models.TextField()

class BarSerializer(serializers.ModelSerializer):
    class Meta:
        model = Bar
        fields = ["example"]


class FooSerializer(serializers.ModelSerializer):
    testing = BarSerializer(many=True,source=bars)
    class Meta:
        model = Foo
        fields = "__all__"


{
  "something": "Testing",
  "children": [
    {
      "example": "Something else"
    }
    {
      "example": "Something else2"
    }
  ],
  "bars":[
        "Something else",
        "Something else2",
    ]

}

Что я вижу, так это

  "children": [
    {
      "example": "Something else"
    }
    {
      "example": "Something else2"
    }
  ],

Что я хочу, так это

  "children": [
      "example": "Something else",
      "example": "Something else2"
  ],

Вы можете использовать SlugRelatedField для имитации этого:

class FooSerializer(serializers.ModelSerializer):
    testing = serializers.SlugRelatedField(
        many=True,
        read_only=True,
        slug_field='example',
        source='bars'
    )
Вернуться на верх