0

我正在用 Python 建立一个网站,并想写一个简单的<select>盒子。

这是我的代码:

<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

我怎样才能解决这个问题?

4

1 回答 1

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>
于 2013-03-03T22:07:13.267 回答