Django模板中如何让下拉框选中预定义值?

6 投票
1 回答
21959 浏览
提问于 2025-04-15 14:09

我正在尝试创建一个下拉列表框,希望选中的值能够和从模板传递过来的值相等,但一直没有成功。有没有人能帮我看看我哪里做错了?

     <select name="movie">
       {% for movie in movies %}
    {% ifequal movie.id selected_movie.id %}
     <option value="{{movie.key}}" selected="true">Movie {{movie.id}}: {{movie.name}}</option>
     {% endifequal %}
     {% ifnotequal movie.id selected_movie.id %}
     <option value="{{movie.key}}">Movie {{movie.id}}: {{movie.name}}</option>
     {% endifnotequal %}
       {% endfor %}
     </select>

在这个例子中,movies 和 selected_movie 是从模板传递过来的值。请给我一些建议!

1 个回答

14

你的代码在我这边用django 1.0.2和firefox 3.5是可以正常工作的。

你可以用{% else %}来代替{% ifnotequal %},然后设置selected="selected"。希望这对你有帮助。

<select name="movie">
    {% for movie in movies %}
        {% ifequal movie.id selected_movie.id %}
            <option value="{{movie.key}}" selected="selected">Movie {{movie.id}}: {{movie.name}}</option>
        {% else %}
            <option value="{{movie.key}}">Movie {{movie.id}}: {{movie.name}}</option>
        {% endifequal %}
    {% endfor %}
</select>

撰写回答