通常,如果我想从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,但我想知道是否有更好的方法来做到这一点。
答案 0 :(得分:2)