【发布时间】:2019-11-18 15:25:52
【问题描述】:
这个类有数据库查询:
class arizakestirimi_func(ListAPIView):
serializer_class = arizakestirimiserializer
def get_queryset(self):
queryset = isyeriarizabilgileri.objects.raw("""
SELECT
M.id as id,M.isyeri as isyeri,
DATE_PART('day',(M.tarih)::timestamp - (D.mindate)::timestamp) * 24 +
DATE_PART('hour',(M.tarih)::timestamp - (D.mindate)::timestamp) +
DATE_PART('minute',(M.tarih)::timestamp - (D.mindate)::timestamp) / 60 as zamanfarki
FROM arizakestirimi_isyeriarizabilgileri M
INNER JOIN
(SELECT DISTINCT ON (isyeri) isyeri,id as id,durustahmini,tarih as mindate
FROM arizakestirimi_isyeriarizabilgileri
WHERE durustahmini='MEKANIK ARIZA' AND isyeri='15400001'
ORDER BY isyeri, tarih ASC) D
ON M.isyeri = D.isyeri AND M.durustahmini = D.durustahmini
ORDER BY M.tarih ASC
""")
return queryset
这是序列化器类,我在serializer.py中定义了它:
class arizakestirimiserializer(serializers.Serializer):
isyeri = serializers.CharField(max_length=30)
zamanfarki= serializers.FloatField()
当我使用 django rest 框架时,我得到了这个 json:
[
{
"isyeri": "15400001",
"zamanfarki": 0.0
},
{
"isyeri": "15400001",
"zamanfarki": 7.0
},
{
"isyeri": "15400001",
"zamanfarki": 603.0
},
{
"isyeri": "15400001",
"zamanfarki": 607.0
},
{
"isyeri": "15400001",
"zamanfarki": 1655.0
},
{
"isyeri": "15400001",
"zamanfarki": 1661.0
}
]
我想在“get_queryset”方法中直接使用这个 json。如何将查询集结果转换为具有给定字段名称的 json,例如“serializers.py”。 谢谢
【问题讨论】:
-
只是出于好奇,为什么在 get_queryset 方法中需要 JSON?
标签: django django-rest-framework