【发布时间】:2018-01-24 23:23:44
【问题描述】:
通常,如果我想从 Django 视图返回 JSON 数据,我可以像这样使用JsonResponse:
from django.http import JsonResponse
def my_view(request):
return JsonResponse({'my_key': 'my_value'})
该数据作为我可以立即使用的 JavaScript 对象发送到前端。
我希望将同样的易用性添加到视图的上下文中,如下所示:
class WebsiteView(TemplateView):
template_name = 'index.html'
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['my_var'] = {'my_key': 'my_value'}
return context
但是,使用{{ my_var }} 渲染模板会给出:
{"my_key": "my_value"}
最终,我想要{{ my_var }} 返回纯字符串而不是 HTML 编码版本:
{"my_key": "my_value"}
这样,我可以轻松地将其加载到带有JSON.parse('{{ my_var }}') 的JavaScript 对象中。
我知道通过manually unescaping the HTML entities 实现这一目标的一种方法是,但我想知道是否有更好的方法来做到这一点。
【问题讨论】:
标签: javascript json django