2009-04-27 3 views
1

ich eine variable Anzahl von Elementen haben, irgendwo zwischen 0 und 20Django: wollen loop.counter verwenden Brief für Google Maps Marker zuweisen

Ich mag würde diese mit Google Static Maps zur Liste, zeigt ein kleines "a" für das erste, ein "b" für das zweite und so weiter.

Ich bin ein Neuling mit Google App Engine so bin ich auf 0,96 beschränkt (es sei denn, ich verschiedene Patches verwenden, die ich nicht will. Tun, weil ich ein Neuling bin.)

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

funktioniert gut, um eine Liste von roten Markierungen zur Verfügung zu stellen.

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

bekommt mich 0-9 auf der Karte.

Für jetzt habe ich die Ergebnismenge auf 10 reduziert. Ich würde gerne zurück zu 20 gehen. Gibt es eine Möglichkeit, den Loopcounter und Slice (wie in {{alpha_list | slice: ": loop_counter „}}? kämpfte ich verschiedene Beschwörungen mit, versuche {{}} um loop_counter und ohne und bekommen kann, es nicht zu arbeiten.

Dank!

Antwort

1

hier zur Verfügung gestellt Wenn Sie es in der Vorlage völlig tun wollen, können Sie die cycle tag verwenden.

etwas wie die folgenden, mit ... erweitert:

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

Ich mag das sehr! Vielen Dank. – jdeibele

2

einfachste wäre, einen Template-Tag zu schreiben. es gibt ein good tut , aber der Code wäre grundsätzlich:

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

Vielen Dank für die Führung. Das Implementieren von Tags sieht wie etwas aus, zu dem ich später zurückkehren werde. Ich bleibe jetzt bei 10 Sachen. – jdeibele