【发布时间】:2019-05-05 12:31:02
【问题描述】:
我正在使用 django restframework 做一些事情。现在非常基本,但我喜欢让我的数据以不同的方式返回给我。
这就是我现在得到响应的方式:
[
{
"line": "line1",
"user_text": "Some text",
"topic": "value/xrp"
},
{
"line": "line2",
"user_text": "Some text 2",
"topic": "beer/heineken/sale"
}
]
这是我喜欢得到的:
{
"line1": {
"user_text": "Some text",
"topic": "value/xrp"
},
"line2": {
"user_text": "Some text 2",
"topic": "beer/heineken/sale"
}
}
这是我的序列化器:
class LineSerializer(serializers.Serializer):
line = serializers.CharField(max_length=16)
user_text = serializers.CharField(max_length=16)
topic = serializers.CharField()
这是风景
class DisplayDetailAPIView(ListAPIView):
serializer_class = LineSerializer
def get_queryset(self):
return Line.objects.filter(display__serial_number=self.kwargs['serial_number'])
以及模型(作为参考)
class Line(models.Model):
display = models.ForeignKey(Display, on_delete=models.CASCADE, related_name='lines')
line = models.CharField(max_length=16)
user_text = models.CharField(max_length=16, null=True, blank=True)
topic = models.ForeignKey(Topic, on_delete=models.CASCADE, blank=True, null=True)
def __str__(self):
return self.line
我查看了其余框架文档,并在 stackoverflow 上看了一些,但我还没有找到答案。
如果有人对我有提示,将不胜感激:)
【问题讨论】:
-
@marke 感谢您的回复。然而,这篇文章对我没有帮助。它旨在在当前响应的上方添加一个键。我喜欢摆脱列表,并在 json 中拥有更高级别的模型值之一
-
您可能需要更改序列化程序响应
标签: django django-rest-framework