我无法在对象属性的js
脚本中使用django的模板过滤器。
这段代码返回js
SyntaxError:
<script>
{{ obj.geometry.geojson | safe }}
</script>
如果过滤器应用于对象,则不会引发错误:
<script>
{{ obj | safe }}
</script>
以上GeoJson
文件的内容如下所示:
{ "type": "Polygon", "coordinates": [ [ [ 3, 36 ], ... }
我显然不希望将引号字符("
)转义为("
),以便稍后我可以JSON.parse()
将其从字符串转换为对象
答案 0 :(得分:1)
在视图中生成新的GeoJson字符串并将其传递给类似于下面的模板:
return render(
request,
'my_template.html',
{'obj': obj, 'geo_json': json.dumps(obj.geometry.geojson)}
)
现在,您需要GeoJson内容的所有地方都使用它,如下所示:
<script>
{{ geo_json | safe }}
</script>
更新:
此外,您可以通过context-processors或template-tags处理此问题,但这种方式可能很难且不必要......