Django RESTフレームワークで多対多フィールドをシリアル化する 質問する

Django RESTフレームワークで多対多フィールドをシリアル化する 質問する

多対多のフィールドを何かのリストにシリアル化し、それを REST フレームワークを通じて返すにはどうすればよいですか? 以下の例では、投稿とそれに関連付けられたタグのリストを一緒に返そうとしています。

モデル.py

class post(models.Model):
    tag = models.ManyToManyField(Tag)
    text = models.CharField(max_length=100)

シリアライザー.py

class PostSerializer(serializers.ModelSerializer):
    class Meta:
        model = Post
        fields = ("text", "tag"??)

ビュー.py

class PostViewSet(viewsets.ReadOnlyModelViewSet):
    queryset = Post.objects.all()
    serializer_class = PostSerializer

ベストアンサー1

を持つTagSerializerが必要になります。が作成されたら、 をに変更して関係を作成します。class Metamodel = TagTagSerializerPostSerializermany=TrueManyToManyField

class PostSerializer(serializers.ModelSerializer):
    tag = TagSerializer(read_only=True, many=True)

    class Meta:
        model = Post
        fields = ('tag', 'text',)

答えはDRF3です

おすすめ記事