2011-03-09 13 views
14

में पाश 7 बार यह मेरा कोड है:कैसे Django टेम्पलेट्स

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

लेकिन यह त्रुटि दिखाने के लिए,

मैं क्या कर सकता,

धन्यवाद

+0

http://stackoverflow.com/questions/1107737/numeric-for-loop-in-django- टेम्पलेट्स एक ही प्रश्न? – DTing

उत्तर

38

views.py:

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

एचटीएमएल:

{% for i in loop_times %} 
     <option value={{ i }}>{{ i }}</option> 
{% endfor %} 
+12

+1: इसे देखने में सर्वश्रेष्ठ है, लेकिन 'रेंज (1, 8)' बहुत साफ होगा। – sdolan

+1

क्यों न केवल सीमा पारित करें? दृश्य: संदर्भ [ 'loop_range'] = रेंज (1, 8) टेम्पलेट: {loop_range% में मैं के लिए%} ... {% endfor%} –

+0

प्यार सादगी, धन्यवाद। विचित्र है कि कुछ इतना आसान टेम्पलेट्स में समर्थित नहीं है। – Alveoli

0

Django टेम्पलेट्स डॉन समर्थन श्रेणी नहीं है। कि समर्थन करता है http://docs.djangoproject.com/en/dev/howto/custom-template-tags/

  1. एक अलग templating प्रणाली, मैको की तरह उपयोग करें:

    1. एक सीमा फ़िल्टर जोड़ें: http://djangosnippets.org/snippets/1357/

    यहाँ कैसे आप कस्टम फ़िल्टर जोड़ें है आप कुछ विकल्प हैं यह।

http://docs.djangoproject.com/en/dev/ref/templates/api/#using-an-alternative-template-language Django-मैको मैको प्रयोग करने के लिए एक शॉर्टकट परियोजना है: http://code.google.com/p/django-mako/

50

अजगर तार में हैं iterables तो यह काम करता है:

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

यह स्पष्ट है, ठीक है, लेकिन zjm1126 का उत्तर शायद दीर्घकालिक विचार के लिए बेहतर है।

+0

प्रोटोटाइप के लिए बहुत उपयोगी, धन्यवाद। –

संबंधित मुद्दे