为了账号安全,请及时绑定邮箱和手机立即绑定

如何将 json 传递给 render_to_response

如何将 json 传递给 render_to_response

aluckdog 2021-09-14 16:27:00
我正在尝试通过 render_to_response 将一个 json 文件传递给前端。前端不是 django 模板,它是用 JS、HTML 等编码的。我遇到了一些奇怪的错误。任何人都可以帮助我。我附上了代码和回溯。return render_to_response('ModelView.html', json.dumps(newDict))Traceback (most recent call last):  File "C:\AppData\Local\Programs\Python\Python37\lib\site-packages\django\core\handlers\exception.py", line 35, in inner    response = get_response(request)  File "C:\AppData\Local\Programs\Python\Python37\lib\site-packages\django\core\handlers\base.py", line 128, in _get_response    response = self.process_exception_by_middleware(e, request)  File "C:\AppData\Local\Programs\Python\Python37\lib\site-packages\django\core\handlers\base.py", line 126, in _get_response    response = wrapped_callback(request, *callback_args, **callback_kwargs)  File "C:\PythonWorkspace\ScApp\ScApp2\views.py", line 78, in ScorecardApp20    return render_to_response('ModelView.html', json.dumps(newDict))  File "C:\Users\kxc89\AppData\Local\Programs\Python\Python37\lib\site-packages\django\shortcuts.py", line 27, in render_to_response    content = loader.render_to_string(template_name, context, using=using)  File "C:\AppData\Local\Programs\Python\Python37\lib\site-packages\django\template\loader.py", line 62, in render_to_string    return template.render(context, request)  File "C:\AppData\Local\Programs\Python\Python37\lib\site-packages\django\template\backends\django.py", line 59, in render    context = make_context(context, request, autoescape=self.backend.engine.autoescape)  File "C:\AppData\Local\Programs\Python\Python37\lib\site-packages\django\template\context.py", line 274, in make_context    raise TypeError('context must be a dict rather than %s.' % context.__class__.__name__)TypeError: context must be a dict rather than str.
查看完整描述

2 回答

?
慕婉清6462132

TA贡献1804条经验 获得超2个赞

不要使用render_to_response,它已经过时了。使用render来代替。

return render(request, 'ModelView.html', {'new_dict': json.dumps(newDict)})

第三个参数必须是字典,因此您可以像我上面所做的那样将 json 字符串添加到字典中,或者您可能根本不想使用json.dumps()而只使用newDict.


查看完整回答
反对 回复 2021-09-14
?
千巷猫影

TA贡献1829条经验 获得超7个赞

使用下面的代码


import json

data = open('/static/JsonFile.json').read() #opens the json file and saves the raw contents

JsonData = json.dumps(data) #converts to a json structure

context = {'obj': JsonData}

return render(request, 'templates', context)

希望它应该工作!


查看完整回答
反对 回复 2021-09-14
  • 2 回答
  • 0 关注
  • 281 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信