2009-04-27 3 views
1

У меня есть переменное число элементов, где-то в диапазоне от 0 до 20.Джанго: хотите использовать loop.counter назначить букву для Google Maps маркер

Я хотел бы перечислить их с Google Static Maps, показывая немного «а» для первого, «б» для второго и так далее.

Я новичок с помощью Google App Engine, поэтому я вынужден 0,96 (если я использую различные патчи, которые я не хочу делать. Потому что я новичок.)

&markers={% for item in results %}{{item.latitude}},{{item.longitude}}{% if not forloop.last %}|{% endif %}{% endfor %} 

работает отлично, чтобы предоставить список красных маркеров.

&markers={% for item in results %}{{item.latitude}},{{item.longitude}},{{forloop.counter0}}{% if not forloop.last %}|{% endif %}{% endfor %} 

получает меня 0-9 на карте.

На данный момент я сократил результат до 10. Я хотел бы вернуться к 20. Есть ли способ использовать loopcounter и slice (как в {{alpha_list | slice: ": loop_counter «}}? Я боролся с различными заклинаниями, пытаясь {{}} вокруг loop_counter и без и не мог заставить его работать.

Спасибо!

ответ

1

Если вы хотите сделать это полностью в шаблоне, вы можете использовать cycle tag.

Что-то вроде следующего, с ... расширен:

{% cycle 'a' 'b' ... 'z' as alphabet %} 
&markers={% for item in results %}{{item.latitude}},{{item.longitude}},{% cycle alphabet %}{% if not forloop.last %}|{% endif %}{% endfor %} 
+0

Мне это очень нравится! Благодарю. – jdeibele

2

Самый простой бы написать тег шаблона. Там в good tut , но в основном это код:

def inttoalpha(n): 
    a = ord('A') 
    return chr(a+n) 
+0

Спасибо за лидерство. Реализация тегов выглядит как нечто, с чем я вернусь назад. На данный момент я придерживаюсь 10 предметов. – jdeibele