【问题标题】:One-To-Many Model Serializer not displaying object in django rest framework一对多模型序列化器不在 django rest 框架中显示对象
【发布时间】:2022-01-23 17:22:28
【问题描述】:

我在 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。任何帮助表示赞赏。

【问题讨论】:

    标签: django django-rest-framework


    【解决方案1】:

    您必须为标签添加序列化程序。

    例如:

    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')
    

    【讨论】:

      猜你喜欢
      • 2017-06-25
      • 1970-01-01
      • 1970-01-01
      • 2013-05-05
      • 2016-04-07
      • 2012-11-16
      • 2018-10-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多