列表API视图返回空对象列表

时间:2019-05-13 10:55:58

标签: django django-rest-framework

我正在尝试使用generics.ListApiView获取对象列表,这是我的序列化器

class SitesSerializer(serializers.Serializer):
    class Meta:
        model = models.Sites
        fields = '__all__'

型号

# domain name without www
class Sites(models.Model):
    SiteName = models.CharField(max_length=50)
    DomainName = models.CharField(max_length=50, primary_key=True)
    Currency = models.CharField(max_length=20)
    CurrencySymbol = models.CharField(max_length=10)
    SiteGroup = models.CharField(max_length=50, choices=SHOPZY_SITE_CHOICES,
                                 default=AMAZON)

这是我的视图类

class SitesView(generics.ListAPIView):
    queryset = Sites.objects.all()
    serializer_class = SitesSerializer

但是我没有得到站点对象列表,而是得到了一个由空对象填充的列表, 上面的代码产生的输出是

[
    {},
    {},
    {},
    {},
    {},
    {},
    {},
    {},
    {},
    {},
    {},
    {},
    {},
    {}
]

此代码有什么问题?为什么rest框架无法显示sites对象的字段?

1 个答案:

答案 0 :(得分:3)

问题出在您的 SitesSerializer 类上。

您应该使用serializers.ModelSerializer而不是serializers.Serializer

class SitesSerializer(serializers.ModelSerializer):
    class Meta:
        model = models.Sites
        fields = '__all__'