首页 > 解决方案 > Django jinja 值未正确传递到 iframe url(打开街道地图)

问题描述

我尝试了几种通过 iframe 将 openstreetmap 合并到我的 django 应用程序中的方法。我可以很好地看到地图并且可以放大或缩小,但它始终是安提瓜的地图。我想在我的 django 模板中嵌入一张小地图,并从 jinja 传入经纬度。无论我传入硬编码的 lon 和 lat 还是 jinja 都没有区别,我仍然在 openstreetmaps 中得到相同的地图。

我从 openstreetmaps wiki https://wiki.openstreetmap.org/wiki/OpenLinkMap开始使用此模板:

<iframe width="420" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://www.openlinkmap.org/small.php?lat=<LAT>&lon=<LON>&zoom=<ZOOM>" style="border: 1px solid black"></iframe>

无论我是硬编码还是输入动态值,我都会看到安提瓜的地图。我尝试从 jinja 传入参数:

<iframe width="420" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://www.openlinkmap.org/small.php?lat={{ li.latitude }}&lon={{ li.longitude }}&zoom=10" style="border: 1px solid black"></iframe>

那没有用,所以我尝试只输入 long 和 lan,但我仍然得到 Antigua:

但以下作为 url 链接可以正常工作并传入正确的参数:

<a href="https://www.openstreetmap.org/#map=12/{{ li.latitude }}/{{ li.longitude }}" target="_blank"><b>View Larger Map</b></a>

我是 openstreetmaps、django 和 jinja 的新手,看不到我在哪里出错。

标签: djangoiframejinja2openstreetmap

解决方案


你必须写如下:

{{ li.latitude|safe }}

推荐阅读