web-dev-qa-db-fra.com

comment boucler 7 fois dans les templates Django

c'est mon code:

{% for i in range(7)%}
        <option value={{i+1}}> {{i+1}}</option>
{% endfor %}

mais cela montre une erreur,

que puis-je faire ,

merci

17
zjm1126

views.py:

context['loop_times'] = range(1, 8)

html:

{% for i in loop_times %}
        <option value={{ i }}>{{ i }}</option>
{% endfor %}
42
zjm1126

En python, les chaînes sont itérables, donc cela fonctionne:

{% for i in "1234567" %}
    <option value={{i}}> {{i}}</option>
{% endfor %}

C'est explicite, donc tout va bien, mais la réponse de zjm1126 est probablement meilleure pour un examen à long terme.

51
blobmaster

Les modèles Django ne prennent pas en charge les plages. Vous avez plusieurs options:

  1. Ajouter un filtre de plage: http://djangosnippets.org/snippets/1357/

Voici comment ajouter des filtres personnalisés: http://docs.djangoproject.com/en/dev/howto/custom-template-tags/

  1. Utilisez un système de templates différent, comme Mako, qui le supporte.

http://docs.djangoproject.com/en/dev/ref/templates/api/#using-an-alternative-template-language Django-Mako est un projet de raccourci pour utiliser Mako: http://code.google.com/p/Django-mako/

0
Jordan