2013-03-03 2 views
0

Я строю сайт на Python и хочу написать простую коробку <select>.Короткие Если использование в Python-Jinja2

Вот мой код:

<td>Posts Per Page</td> 
<td> 
    {{ g.blogOptions['posts_per_page'] }} 
     <select name="posts_per_page">       
      {% for counter in range(5, 20, 5) %} 
       <option value="{{counter}}" {{ "selected=true" if counter == g.blogOptions['posts_per_page'] else '' }}> {{ counter }}</option> 
      {% endfor %} 
     </select> 
</td> 

На линии 3 этого кода, он печатает 10, но в цикле for он не попал в if и не пишет selected=true

Как может Я это исправить?

ответ

1

Вы хотите использовать {% if %}/{% endif %}:

<select name="posts_per_page">       
    {% for counter in range(5, 20, 5) %} 
     <option value="{{counter}}" {% if counter == g.blogOptions['posts_per_page'] %} selected="selected" {% endif %}> {{ counter }}</option> 
    {% endfor %} 
</select> 

Убедитесь, что g.blogOptions['posts_per_page'] является целым числом; Если это строка вместо этого, вам нужно будет ее лить:

{% set posts_per_page = int(g.blogOptions['posts_per_page']) %} 
<select name="posts_per_page">       
    {% for counter in range(5, 20, 5) %} 
     <option value="{{counter}}" {% if counter == posts_per_page %} selected="selected" {% endif %}> {{ counter }}</option> 
    {% endfor %} 
</select> 
+0

Да, но этот код не работает ни. – saidozcan

+0

да, вы правы, может быть, но теперь он говорит UndefinedError: 'int' не определено – saidozcan

+0

@Gandalf: извините, действительно, если утверждения ограничены; секундочку. –

Смежные вопросы