如何将json传递给render_to_response

时间:2018-12-11 19:12:23

标签: python json django

我正在尝试将一个json文件通过render_to_response传递到前端。前端不是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 个答案:

答案 0 :(得分:0)

不要使用render_to_response,它已经过时了。请改用render

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

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

答案 1 :(得分:-1)

使用下面的代码

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)

希望它能工作!