提问者:小点点

JsonResponse中的Django HttpResponse


在我的django项目中,为了避免另一个请求,我希望返回一个带有HttpResponse的JsonResponse,如下所示:

JSONResponse({“known”:True,“space”:render(request,'space.html')},status=200)

Django进程返回正常的内部错误类型为HttpResponse的对象不是JSON可序列化的

我尝试了所有的web解决方案(serializer等),但找不到一种方法来返回带有字典条目的json格式(对我的javascript来说是必需的),其中一个是一个完整的html页面,我可以与$(“body”)。html(response[“space”])一起使用。

我是不是漏掉了什么?

谢谢你抽出时间。


共1个答案

匿名用户

render函数返回一个HttpResponse,实际上,JSON序列化程序不知道如何处理这个问题。

您可以使用render_to_string[Django-doc]将其呈现为字符串:

from django.template.loader import render_to_string

…

JsonResponse({
    'known': True,
    'space': render_to_string('space.html', request=request)
})