Ошибка при попытке отобразить карту Folium на сервере Django - PullRequest
2 голосов
/ 21 марта 2019

view.py

map = folium.Map(location=[df['latitude'].mean(), 
df['longitude'].mean()],tiles="cartodbpositron",zoom_start=12)

map.save("map.html")

context = {'my_map': map}

return render(request, 'my_map.html', context)

my_map.html:

<!DOCTYPE html>
<html lang="en">
<head>
     <meta charset="UTF-8">
     <title>Title</title>
</head>
<body>
{{ my_map }}
</body>

результат браузера:

folium.folium.Map object at 0x7f49d85662b0

я не уверен, какподходить к тому, чтобы заставить html / js работать в браузере после того, как пользователь отправил свой ввод через предыдущую HTML-форму ... Я, кажется, искал везде, и есть много похожих проблем с решениями, но я не мог заставитьработа!

Спасибо!

1 Ответ

0 голосов
/ 21 марта 2019

Карта объекты имеют рендер method, который отображает его HTML-представление.

Вы можете попробовать напрямую:

<body>
{{ my_map.render }}
</body>

Или вы можете использовать метод Map.render для реализации пользовательского тега включения, чтобы вы могли передавать аргументы методу рендеринга.Смотрите это, чтобы узнать больше о включении и пользовательских тегах .

# The template tag.
for django.template import Library

register = Library()

@register.inclusion_tag
def render_map(map_object, **kwargs):
    return map_object.render(**kwargs)

В вашем шаблоне:

<body>
{% render_map my_map some_arg1=arg1  some_arg2=arg2 %}
</body>
...