[英]Apply django's template filters inside a `js` script on an object's attribute
我无法在对象属性的js
脚本中使用 django 的模板过滤器。
这段代码返回一个js
SyntaxError:
<script>
{{ obj.geometry.geojson | safe }}
</script>
而如果过滤器应用于对象,则不会引发错误:
<script>
{{ obj | safe }}
</script>
上面GeoJson
文件的内容如下图所示:
{ "type": "Polygon", "coordinates": [ [ [ 3, 36 ], ... }
我显然不想将引号字符 ( "
) 转义为 ( "
),因此我可以稍后使用JSON.parse()
将其从字符串转换为对象。
在视图中生成新的 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处理此问题,但这种方式可能很难且不必要...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.