Select Django 中 <select> 元素的默认值

Select default value of <select> element in Django

我有一个按以下方式创建的下拉菜单:

<select id="ip_addr">
    {% for host in hosts %}
        <option value="{{ host.ipaddress }}">{{ host.ipaddress }}</option>
    {% endfor %}
</select>

而且我不知道如何设置默认值。通常我只会说

<option value="0.0.0.0" selected>0.0.0.0</option>

但是由于我用循环填充此下拉菜单,所以我不知道如何确保选择了我想要的选项。我确信有一种非常直接的方法可以做到这一点,但我对 HTML/JavaScript/Django.

还是很陌生

这里是一个决定 selected 索引 select 的例子。

var obj = document.getElementById("sel");
for(i=0; i<obj.options.length; i++){
    if(obj.options[i].value == "b"){
        obj.selectedIndex = i;
    }
}
<select id="sel">
    <option value="a">a</option>
    <option value="b">b</option>
</select>

您有 2 个选项,使用 Django 模板内置功能:

  1. 如果要将第一个主机设置为默认 select 选项
  2. 如果要将特定主机设置为默认 select 选项

以下是 2 种可能的解决方案:

<select id="ip_addr">
    {% for host in hosts %}
        <option value="{{ host.ipaddress }}" {% if forloop.first %}selected{% endif %}>{{ host.ipaddress }}</option>
    {% endfor %}
</select>
<select id="ip_addr">
    {% for host in hosts %}
        <option value="{{ host.ipaddress }}" {% if host.ipaddress == '0.0.0.0' %}selected{% endif %}>{{ host.ipaddress }}</option>
    {% endfor %}
</select>

注意:foorloop.first是一个特殊的模板循环变量,在循环的第一次迭代期间为True。

我测试了好几遍,希望对你有帮助:

<select>
 {% for priority in priorities %}
  {% if actual_priority == priority %}
   <option select>{{priority}}</option>
  {% else %}
   <option>{{priority}}</option>
  {% endif %}
 {% endfor %}
</select>

有必要从您的角度发送“actual_priority”和“优先级”