如何在serpy序列化程序中指定数据库模型?

时间:2016-05-19 09:26:19

标签: python django serialization django-rest-framework django-serializer

我有两个型号,

class Publication(models.Model):
    title = models.CharField(max_length=30)


class Article(models.Model):
    headline = models.CharField(max_length=100)
    publications = models.ManyToManyField(Publication)

我正在尝试学习使用serpy进行序列化。

我写了两个序列化程序,但我不确定如何提及该模型。我写了一个django rest框架序列化程序,如下所示,

class PublicationSerializer(serializers.ModelSerializer):

    class Meta:
        model = Publication
        fields = 'title',

class ArticleSerializer(serializers.ModelSerializer):
    publications = PublicationSerializer(many=True)

    class Meta:
        model = Article
        fields = '__all__'

这是我为Serpy使用而编写的序列化程序。

class PublicationSerializer(serpy.Serializer):

    title = serpy.Field()

class ArticleSerializer(serpy.Serializer):
    headline = serpy.Field()
    publications = PublicationSerializer()

我不知道我应该在哪里提到模型,

我希望能够序列化一个查询集,比如说

Article.objects.all()

必须对Django Rest Framework进行哪些更改?

1 个答案:

答案 0 :(得分:2)

您显然不需要为serpy序列化程序指定关联的模型。将Django对象传递给相应的serpy序列化程序类就足够了。或者不是?

articles = Article.objects.all()

articles_serialized = ArticleSerializer(articles, many=True).data