Значения Django jinja неправильно переданы в URL-адрес iframe (open streetmap)

#django #iframe #jinja2 #openstreetmap

#django #iframe #jinja2 #openstreetmap

Вопрос:

Я попробовал несколько способов включить openstreetmap через iframe в мое приложение 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>amp;lon=<LON>amp;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 }}amp;lon={{ li.longitude }}amp;zoom=10" style="border: 1px solid black"></iframe>

Это не сработало, поэтому я попытался просто ввести long и lan, и я все еще получаю Антигуа:

Но следующее отлично работает как ссылка url и передает правильные параметры:

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

Я новичок в openstreetmaps, django и jinja и не вижу, где я допускаю ошибку.

Ответ №1:

Вы должны написать следующее:

 {{ li.latitude|safe }}
 

Ответ №2:

Обновление: я обнаружил, что использование <embed> тега работает нормально. Кажется <iframe> , не всегда поддерживается в html5, и это, возможно, вызывало некоторые проблемы.