【问题标题】:Django rest-framework + polymorphic: serialize a list of URLsDjango rest-framework + 多态:序列化 URL 列表
【发布时间】:2014-04-13 10:04:18
【问题描述】:

我的模型的相关部分:

class Item(PolymorphicModel):
    rating = models.DecimalField(default=0.0, max_digits=5, decimal_places=2)
    picture = models.URLField(max_length=200)
    category = models.ForeignKey('Category', related_name='items')
    # url_list

class Movie(Item):
    title = models.CharField(max_length=200)
    description = models.CharField(max_length=2000)
    ...

我想在 Item 类中有一个 url 列表。这个列表应该在电影对象序列化器中被序列化。

到目前为止,我尝试创建一个模型来以这种方式表示 URL:

class Url(models.Model):
    url = models.URLField(max_length=200)
    item = models.ForeignKey('Item', related_name='pictures')

但是当电影被连载时,我得到一个空列表。我的序列化器是:

class UrlSerializer(serializers.ModelSerializer):

    class Meta:
        model = ScrollerPictureUrl
        fields = ('url',)


class MovieSerializer(serializers.ModelSerializer):
    urls = UrlSerializer(many=True)

    class Meta:
        model = Movie
        exclude = ('polymorphic_ctype', 'category')

我需要知道如何序列化 Movie 对象的 url 列表,使其不为空。

【问题讨论】:

    标签: json django rest django-models polymorphism


    【解决方案1】:

    这就是我最终所做的:

    class MovieSerializer(serializers.ModelSerializer):
        urls = serializers.SlugRelatedField(many=True, slug_field='url')
    
        class Meta:
            model = Movie
            exclude = ('polymorphic_ctype', 'category')
    

    【讨论】:

      猜你喜欢
      • 2013-11-27
      • 1970-01-01
      • 1970-01-01
      • 2020-10-13
      • 2018-02-17
      • 1970-01-01
      • 2019-02-17
      • 2017-07-12
      • 2020-10-30
      相关资源
      最近更新 更多