我有模特,
class Reporter(models.Model):
name = models.CharField(max_length=50)
def __str__(self):
return self.name
class Article(models.Model):
title = models.CharField(max_length=100)
reporter = models.ForeignKey(Reporter, on_delete=models.CASCADE)
def __str__(self):
return self.title
和序列化器
class ReporterSerializer(serializers.ModelSerializer):
article = serializers.StringRelatedField(source='article_set')
class Meta:
model = Reporter
fields = '__all__'
和观看次数
class ReporterAPI(viewsets.ModelViewSet):
queryset = Reporter.objects.all()
serializer_class = ReporterSerializer
一切似乎都很好,但是我的回应显示出一些奇怪的地方
回应
这是RESPONSE IMAGE
响应文章显示错误的输出
答案 0 :(得分:2)
由于article_set
是对象列表,因此应添加many=True
参数:
class ReporterSerializer(serializers.ModelSerializer):
article = serializers.StringRelatedField(source='article_set', many=True)
class Meta:
model = Reporter
fields = '__all__'
答案 1 :(得分:1)
由于 article_set
是反向关系,因此应在 {{ 1}} ,
many=True
序列化多个对象
序列化查询集或列表 对象而不是单个对象实例,您应该传递 实例化序列化程序时带有
StringRelatedField()
标志。