【问题标题】:Pass JSON data in Django context在 Django 上下文中传递 JSON 数据
【发布时间】: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


    【解决方案1】:

    正如Django template documentation 中提到的,您应该可以在模板中使用|safe 过滤器:

    {{ my_var|safe }}

    这应该指示 Django 模板引擎逐字呈现数据。

    【讨论】:

    • 完美!可以发誓我之前尝试过没有任何成功......嗯。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2022-11-19
    • 1970-01-01
    • 2018-12-28
    • 1970-01-01
    • 2023-03-13
    • 2014-12-16
    • 2017-03-16
    • 1970-01-01
    相关资源
    最近更新 更多