django - StringRelatedField 没有按预期工作
问题描述
我有模特,
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
一切似乎都很好,但是,我的回复显示了一些奇怪的回复
这是回复图片
回复文章显示错误的输出
解决方案
由于article_set
是对象列表,您应该添加many=True
参数:
class ReporterSerializer(serializers.ModelSerializer):
article = serializers.StringRelatedField(source='article_set', many=True)
class Meta:
model = Reporter
fields = '__all__'
推荐阅读
- reactjs - 有没有办法嵌套页面样式?
- python - 我试图将 str 转换为 int,但我仍然无法获得比较所需的数字
- solr - 将 SOLR 6.0 升级到 8.9
- jenkins - 如何触发分支内的Jenkins作业特定文件夹
- sql - MS Access:如何找到所有字段的最大长度?
- flutter - 如何在继续之前等待实际建立 ble 连接
- html - CSS 中完美的矩形 DIV 包装器
- flutter - 在 DateTime.parse() 中允许空字符串
- python - 如何在熊猫数据框列中找到与 O(logn) 中的输入值 x 最接近的 k 个值?
- bash - 读取输入参数并使用 xargs 传递给 sed