如何在视图 Django 中更改渲染以返回 json [重复]

Posted

技术标签:

【中文标题】如何在视图 Django 中更改渲染以返回 json [重复]【英文标题】:How I can change render to return json in view Django [duplicate] 【发布时间】:2018-04-27 13:17:24 【问题描述】:

我正在查看函数

from django.shortcuts import render
from .models import myModel

def articleTheme(request):
    if request.method == 'POST':
        article_id = request.POST['id']
        article = myModel.objects.get(id=article_id)
        theme = article.theme
        return render(request, 'theme.html', 'newTheme': theme )

现在它可以正常工作了。但是我有多余的html。我想返回 json 对象。 我可以导入和返回什么?

【问题讨论】:

【参考方案1】:

使用JsonResponse

from django.http import JsonResponse
..
def articleTheme(request):
    ..
    return JsonResponse('newTheme': theme )

【讨论】:

然后如何在下一个视图函数中访问这个?。 模板如何加载??【参考方案2】:

您可以使用HttpResponse 和 JSON 格式返回数据,如下所示:

data = 'newTheme': theme
data = json.dumps(data, cls=DjangoJSONEncoder)
return HttpResponse(data)

【讨论】:

以上是关于如何在视图 Django 中更改渲染以返回 json [重复]的主要内容,如果未能解决你的问题,请参考以下文章

django更改管理视图(无模型)

Django - 如何渲染 html 并同时返回一个 json

如何在反应原生渲染中以无限循环返回数组项视图?

如何在 Django 模板上实现“返回”链接?

Django 视图无法在 ajax 成功时返回 json?

如何返回通过django中的视图的静态文件?