我正在尝试使用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对象的字段?
答案 0 :(得分:3)
问题出在您的 SitesSerializer
类上。
您应该使用serializers.ModelSerializer
而不是serializers.Serializer
class SitesSerializer(serializers.ModelSerializer):
class Meta:
model = models.Sites
fields = '__all__'