У меня есть это, по моему мнению:
string_location = myaddress2
geodata = []
for place, (lat, lng) in g.geocode(string_location,exactly_one=False):
geodata.append((place, (lat, lng)))
geodata_results = len(geodata)
data = {"geodata": geodata, "geodata_results":geodata_results }
return render_to_response("business/business_view.html",
data, context_instance=RequestContext(request))
Как я "обработал" бы / преобразовывают геоданные в JSON и передают его моему шаблону так, чтобы я мог "циклично выполниться" через него как массив?
Действительно ли я прав думать, что я могу сделать это этот путь? В противном случае затем предложите на лучшем решении.
Спасибо!
ОБНОВЛЕНИЕ
var geodata = "[["M. L. Quezon Street<br/>Mandaue City, Philippines", [10.351381999999999, 123.923535]], ["Talamban<br/>Cebu City, Philippines", [10.353527, 123.91352500000001]]]";
Я думаю, что JSON не оставляют? Как я выхожу из специальных символов в строке json? Я продолжаю получать ошибку новой строки.
Для PHP я был бы json_encode () для фиксации этого. Как в этом сообщении: Передайте строку PHP переменной JavaScript (и выйдите из новых строк), НО как я делаю это в Python/Django?
Вы можете использовать встроенный модуль json
:
>>> import json
>>> geodata = [ ( "Here", (1003,3004) ), ("There", (1.2,1.3)) ]
>>> json.dumps(geodata)
'[["Here", [1003, 3004]], ["There", [1.2, 1.3]]]'
Затем вы можете просто встроить полученную строку в сценарий javascript:
<script type='text/javascript'>
var geodata = {{ geodata|safe }};
</script>
Хорошо, я решил свою проблему и хочу ответить на свой вопрос. Я подумал, что здесь будет лучше для других пользователей.
Сначала получите файл здесь: http://www.JSON.org/json_parse.js
var geodata = json_parse("{{geodata|escapejs}}");
Я только что использовал escapejs: http://docs.djangoproject.com/en/dev / ref / templates / builtins / # escapejs
РЕДАКТИРОВАТЬ: Спасибо Игнасио Васкес-Абрамсу. Именно он помог мне в #python Freenode. Должен был поверить ему, когда написал этот пост. Я не знал, что он был в Stackoverflow.