【发布时间】:2019-02-16 02:33:26
【问题描述】:
已编辑:
在我的 html 模板中,我有一个选择控件,并希望根据变量 {{specialtyId}} 设置选择的选项。预期结果是选中的选项会被选中,但实际结果是没有选项被选中。
为了确保不只是 select 控件受到影响,我还使用了一个类似的循环来根据 if 语句测试生成带有“已选择”或“未选择”的标签。
代码如下:
<label>{{specialtyId}} was selected</label>
<br>
{% for s in specialties %}
<label>{{s.specialtyId}} {{s.specialtyName}} {% if s.specialtyId == specialtyId %} selected {% else %} not selected {% endif %}</label><br>
{% endfor %}
<select class="form-control" id="specialtyId" name="specialtyId" required="True">
{% for s in specialties %}
<option value="{{s.specialtyId}}" {% if s.specialtyId == specialtyId %} selected {% endif %}>{{s.specialtyName}}</option>
{% endfor %}
</select>
这里是实际选定值、生成的标签和生成的下拉列表的屏幕截图。尽管specialtyId 显然是输出2 was selected 中的2,但两个标签都没有“选中”,下拉选项 也没有。
所以我已经按照下面赞成的答案中的建议进行了更改,并重新启动了浏览器并清除了缓存,但仍然没有成功。
【问题讨论】:
-
这里的
value是什么?你能把你传递给渲染的字典的repr(..)传给你吗? -
@WillemVanOnsem 专业列表的repr是一个SpecialtyListResult对象的列表,每个对象只是一个整数specialId和一个字符specialName
标签: html django django-templates