Как мне сериализовать поле «многие ко многим» в список чего-либо и вернуть их через структуру остатка? В моем примере ниже я пытаюсь вернуть сообщение вместе со списком тегов, связанных с ним.
models.py
class post(models.Model):
tag = models.ManyToManyField(Tag)
text = models.CharField(max_length=100)
serializers.py
class PostSerializer(serializers.ModelSerializer):
class Meta:
model = Post
fields = ("text", "tag"??)
views.py
class PostViewSet(viewsets.ReadOnlyModelViewSet):
queryset = Post.objects.all()
serializer_class = PostSerializer
Добавление к ответу @Brian "теги": [{"Имя": "tag1"}] может быть упрощен до "тегов": ["tag1", "tag2"...] таким образом:
class PostSerializer(serializers.ModelSerializer):
tag = TagSerializer(read_only=True, many=True)
class Meta:
...
class TagSerializer(serializers.RelatedField):
def to_representation(self, value):
return value.name
class Meta:
model = Tag
[еще 113] информация здесь: https://www.django-rest-framework.org/api-guide/relations/#custom-relational-fields