django json序列化器有问题



我试着寻找答案,但到目前为止无济于事,基本上我尝试返回django模型作为json然而,似乎序列化器将其转换为字符串而不是

我的代码如下:

view.py

from django.shortcuts import render
from screener.models import maintable
from .models import Messages
from django.http import JsonResponse
from django.core import serializers
from datetime import datetime
import json
def infiniteScroll(request, room_name):
dateFilter=request.GET.get('date')
dateFilter=dateFilter[5:len(dateFilter)-4]
dateFilter=datetime.strptime(dateFilter, '%d %b %Y %H:%M:%S')
data=serializers.serialize('json', reversed(Messages.objects.filter(room=room_name).filter(date_added__lt=dateFilter).order_by('-date_added')[:2]))
return JsonResponse(data, safe=False)

urls . py

from django.contrib import admin
from django.urls import path
from . import views
app_name='chat'
urlpatterns = [
path('<str:room_name>/', views.room, name='room'),
path('<str:room_name>/hist/', views.infiniteScroll, name='infiniteScroll'),
]

当我进入网站http://127.0.0.1:8000/chat/AAPL/hist/?date=Thu,%2023%20Sep%202021%2014:03:42%20GMT

结果是一个带有字符串的页面:

"[{"model": "chat.messages", "pk": 118, "fields": {"username": "adiputra12", "room": "AAPL", "content": "hello", "date_added": "2021-09-23T13:54:30.043Z"}}]"

如何返回json,如下所示:

[{'model': 'chat.messages', 'pk': 118, 'fields': {'username': 'adiputra12', 'room': 'AAPL', 'content': 'hello', 'date_added': '2021-09-23T13:54:30.043Z'}]

这行代码之后

data=serializers.serialize('json',reversed(Messages.objects.filter(room=room_name).filter(date_added__lt=dateFilter).order_by('-date_added')[:2]))

尝试添加

data = json.loads(data)
return JsonResponse(data, safe=False)