Reputation: 2215
I'm building a website in Python and want to write a simple <select>
box.
Here's my code:
<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>
On the line 3 of this code, it prints 10
but in the for
loop it doesn't hit the if
and doesn't write selected=true
How can I fix this?
Upvotes: 0
Views: 990
Reputation: 1121196
You want to use {% 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>
Make sure that g.blogOptions['posts_per_page']
is an integer; if it is a string instead, you'll need cast it:
{% 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>
Upvotes: 1