我需要澄清一下。例如,如果我使用序列化对象执行视图:
def sample(request):
res = [{'name':'man'}]
encoded = json.dumps(res)
return render_to_response('sample/example.html',{'encoded':encoded} )
在我的模板中,我通过了:
{{encoded}}
现在我可以从python脚本中做到:
data = json.loads(urllib2.urlopen(url/to/site).read()
它表示ValueError:无法解码JSON对象。但是{{encoded}}不是json对象吗?如果是这样,我怎么能得到它?
谢谢
答案 0 :(得分:8)
在模板中尝试此操作:
{% autoescape off %}
{{ encoded }}
{% endautoescape %}
答案 1 :(得分:1)
你可能会发现有些引号会被Django转义。最近我和Jinja2模板有类似的问题。在我的例子中,JSON进入了一个HTML数据属性,并且不正确地逃避了。在我使用过滤器标记它是安全的之后,它停止了转义引号并且引号不匹配。解决方案是
{% set dbl_quote='"' %}
{{ encoded |replace(dbl_quote, '"') |safe}}
但在Django中可能会有所不同。
如果您将其直接转换为Javascript等,则可能需要使用{% autoescape off %}
或类似的东西。