一对多模型序列化程序不在 django rest 框架中显示对象
One-To-Many Model Serializer not displaying object in django rest framework
我在 django rest 框架中有一个一对多模型。
视频是父项,标签是子项,我试图在视频序列化器中显示所有标签。
class Video(Base):
video = models.FileField(null=True, blank=True)
thumbnail = models.ImageField(null=True, blank=True)
class Tag(Base):
video = models.ForeignKey(Video, on_delete=models.CASCADE, related_name='tags')
text = models.CharField(max_length=100, null=True, blank=True)
score = models.DecimalField(max_digits=10, decimal_places=2, blank=True, null=True)
在我的序列化程序中我有这个,
class VideoSerializer(serializers.ModelSerializer):
video = serializers.FileField(max_length=None, use_url=True, allow_null=True, required=False)
thumbnail = serializers.ImageField(max_length=None, use_url=True, allow_null=True, required=False)
class Meta:
model = Video
fields = ('id', 'video', 'thumbnail', 'tags')
问题是序列化数据只显示标签的 id
。任何帮助表示赞赏。
您必须为标签添加序列化程序。
例如:
class TagSerializer(Base):
class Meta:
model = Tag
fields = ('id', 'text', 'score')
将VideoSerializer
改成这样:
class VideoSerializer(serializers.ModelSerializer):
video = serializers.FileField(max_length=None, use_url=True, allow_null=True, required=False)
thumbnail = serializers.ImageField(max_length=None, use_url=True, allow_null=True, required=False)
tags = TagSerializer(many=True)
class Meta:
model = Video
fields = ('id', 'video', 'thumbnail', 'tags')
我在 django rest 框架中有一个一对多模型。 视频是父项,标签是子项,我试图在视频序列化器中显示所有标签。
class Video(Base):
video = models.FileField(null=True, blank=True)
thumbnail = models.ImageField(null=True, blank=True)
class Tag(Base):
video = models.ForeignKey(Video, on_delete=models.CASCADE, related_name='tags')
text = models.CharField(max_length=100, null=True, blank=True)
score = models.DecimalField(max_digits=10, decimal_places=2, blank=True, null=True)
在我的序列化程序中我有这个,
class VideoSerializer(serializers.ModelSerializer):
video = serializers.FileField(max_length=None, use_url=True, allow_null=True, required=False)
thumbnail = serializers.ImageField(max_length=None, use_url=True, allow_null=True, required=False)
class Meta:
model = Video
fields = ('id', 'video', 'thumbnail', 'tags')
问题是序列化数据只显示标签的 id
。任何帮助表示赞赏。
您必须为标签添加序列化程序。
例如:
class TagSerializer(Base):
class Meta:
model = Tag
fields = ('id', 'text', 'score')
将VideoSerializer
改成这样:
class VideoSerializer(serializers.ModelSerializer):
video = serializers.FileField(max_length=None, use_url=True, allow_null=True, required=False)
thumbnail = serializers.ImageField(max_length=None, use_url=True, allow_null=True, required=False)
tags = TagSerializer(many=True)
class Meta:
model = Video
fields = ('id', 'video', 'thumbnail', 'tags')