Добавление всплывающей информации Folium в таблицу рядом с картой
Я создаю сайт с картами, используя Pandas, Django и Folium, с всплывающими окнами, отображающими информацию о серверах в локациях.
Я хочу включить всю информацию, которая будет отображаться на всплывающем окне рядом с картой, в таблицу. Вот пример всплывающего окна
Я хочу, чтобы это было в таблице, как это table view
В настоящее время таблица представляет собой цикл for, итерирующий по датафрейму pandas. Но при этом отображается каждая строка в датафрейме, а не информация о конкретном маркере, как это делает всплывающее окно.
Код выглядит следующим образом:
locations = Location.objects.values()
loc_data = pd.DataFrame(locations)
for index, location_info in loc_data.iterrows():
# Popup design through Iframe - html variable contains basic html to redesign the popup
html=f"""
<h1>{location_info['hostname']}</h1>
<p>Node Attributes:
<ul>
<li>Structure Name: {location_info["structurename"]}</li>
<li>Domain: {location_info["domain"]}</li>
<li>IP Address: {location_info["ip"]}</li>
<li>Persona: {location_info["personas"]}</li>
</ul>
{location_info["cube"]}
</p>
<a href={location_info["cubeurl"]} target = "_blank">Login to cube</a>
"""
# Initialise the iframe as a variable and set the popup to be the iframe
iframe = folium.IFrame(html=html, width=350, height=270)
popup = folium.Popup(iframe, max_width=2650)
# Add Markers to the map based on criteria
if location_info["cube"] == "Industrial Cube North":
folium.Marker([location_info["latitude"], location_info["longitude"]], popup=popup, icon=folium.Icon(color='darkred'), tooltip=f'''{location_info["hostname"]}''').add_to(m)
elif location_info["cube"] == "Industrial Cube South":
folium.Marker([location_info["latitude"], location_info["longitude"]], popup=popup, icon=folium.Icon(color='green'), tooltip=f'''{location_info["hostname"]}''').add_to(m)
m=m._repr_html_() #updated
context = {'map': m, 'loc_data': loc_data}
return render(request, 'maps/map.html', context)
Это мой html шаблон Django: template
Я думаю, что для отображения ему нужен какой-то слушатель событий при нажатии? Возможно ли это? Есть ли у кого-нибудь какие-нибудь указания?
EDIT - Я пробовал передать всплывающее окно контексту, но он не итерируемый... Я также пробовал iframe, но он отображает экран ошибки подключения