Django模板中如何让下拉框选中预定义值?
我正在尝试创建一个下拉列表框,希望选中的值能够和从模板传递过来的值相等,但一直没有成功。有没有人能帮我看看我哪里做错了?
<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>