Django rest-framework + polymorphic:序列化URL列表

时间:2014-03-10 10:37:11

标签: json django rest django-models polymorphism

我的模型的相关部分:

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列表,使其不为空。

1 个答案:

答案 0 :(得分:0)

这就是我最后做的事情:

class MovieSerializer(serializers.ModelSerializer):
    urls = serializers.SlugRelatedField(many=True, slug_field='url')

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