繁体   English   中英

在对象的属性上的`js` 脚本中应用 django 的模板过滤器

[英]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 ], ... }

我显然不想将引号字符 ( " ) 转义为 ( &quot; ),因此我可以稍后使用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-processorstemplate-tags处理此问题,但这种方式可能很难且不必要...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM