Фреймворк отдыха Django, сериализующий многие в многие области

Как мне сериализовать поле «многие ко многим» в список чего-либо и вернуть их через структуру остатка? В моем примере ниже я пытаюсь вернуть сообщение вместе со списком тегов, связанных с ним.

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
57
задан 17 October 2015 в 05:45

1 ответ

Добавление к ответу @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

1
ответ дан 1 November 2019 в 16:46

Другие вопросы по тегам:

Похожие вопросы: