Django休息框架序列化到多个字段 [英] Django rest framework serializing many to many field
本文介绍了Django休息框架序列化到多个字段的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何将多对多的字段序列化成某些东西,并通过休息框架返回?在下面的示例中,我尝试返回一个与之相关的标签列表。
How do I serialize a many-to-many field into list of something, and return them through rest framework? In my example below, I try to return the post together with a list of tags associated with it.
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
推荐答案
您将需要一个 TagSerializer
,其类Meta
具有 model = Tag
。创建 TagSerializer
后,使用 many = True
PostSerializer >一个 ManyToManyField
关系:
You will need a TagSerializer
, whose class Meta
has model = Tag
. After TagSerializer
is created, modify the PostSerializer
with many=True
for a ManyToManyField
relation:
class PostSerializer(serializers.ModelSerializer):
tag = TagSerializer(read_only=True, many=True)
class Meta:
...
这篇关于Django休息框架序列化到多个字段的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文