Форум сайта python.su
Я новенький в программирование на python и django. В общем, пытаюсь расставить массив маркеров на карте Google maps v3. Запихиваю координаты в массив. Так работает:
myPlaces.push(new Place('Иванов', 51.52059060571361, 30.762081299999977, 'Иду на задание')); myPlaces.push(new Place('Петров', 51.51840087769148, 30.753783113430814, 'Бездельничаю'));
{% for position in position %} myPlaces.push(new Place("{{position.position_title}}", {{position.position_lat}},{{position.position_lng}}, "{{position.position_description}}")); {% endfor %}
Офлайн
Python – бэкенд, JS – фронтенд.
Что получается на странице после
{% for position in position %} myPlaces.push(new Place("{{position.position_title}}", {{position.position_lat}},{{position.position_lng}}, "{{position.position_description}}")); {% endfor %}
myPlaces.push(new Place('Иванов', 51.52059060571361, 30.762081299999977, 'Иду на задание')); myPlaces.push(new Place('Петров', 51.51840087769148, 30.753783113430814, 'Бездельничаю'));
Офлайн
Вообще ничего не выводит, при:
{% for position in position %} myPlaces.push(new Place("{{position.position_title}}", {{position.position_lat}},{{position.position_lng}}, "{{position.position_description}}")); {% endfor %}
Офлайн
{% for position in position %}
У вас одинаково называются переменные.
Попробуйте {% for p in … %} или проверьте имя переменной которую вы передаете в контексте.
Офлайн
Попробовал, не помогло. Данные поступают в js, я во View классе передаю данные с модели с ограничением ( id =1) и все данные поступают в js, я так понял что цикл нельзя в js вставить. Можете пожалуйста подсказать, как можно в js передать массив данных из модели?
Офлайн
А как у вас выглядит шаблон, с которым работает вьюха?
так
... <script type="text/javascript"> {% for position in position %} myPlaces.push(new Place("{{position.position_title}}", {{position.position_lat}},{{position.position_lng}}, "{{position.position_description}}")); {% endfor %} </script> ...
... <script type="text/javascript" src="path/to/js"></script> ...
Офлайн
<script type="text/javascript">
{% for position in position %} var latString = String({{position.position_lat}}); var lat = parseFloat(latString); var lngString = String({{position.position_lng}}); var lng = parseFloat(lngString); myPlaces.push(new Place("{{position.position_title}}", lat ,lng, "{{position.position_description}}")); {% endfor %}
Офлайн
Можно использовать фильтр stringformat
{{position.position_lat|stringformat:"f"}}
Офлайн