<选项{%为“条件”。 =='condition ....'%} selected {%endif%}> </option>在Django自定义选择中不起作用

时间:2019-10-16 04:21:58

标签: django python-3.x select jinja2 option

我正在将两个键值对'editsub_obj''cat'传递给模板。 主要目的是当两个对象列表中的名称均匹配但代码不起作用时,保留选择的选项标签

  <select class="form-control" id="" name="cat_name" required>
            {% if not editsub_obj %}

            {% for data in cat %}
                <option  value="{{data.id}}">{{data.category_name}}</option>
            {% endfor %}

            {% else %}

            {% for data in cat %}
                {% if editsub_obj.category_name == data.category_name %}
                <option   value="{{data.id}}" selected>{{data.category_name}}</option>
                {% else %}

                <option   value="{{data.id}}">{{data.category_name}}</option>

                {% endif %}

            {% endfor %}

            {% endif %}

   </select>

预期:

应该在两个对象列表中选择category_name匹配的

实际:

所有选项均未显示为选中状态。

1 个答案:

答案 0 :(得分:0)

您的代码可以减少为::

    <select class="form-control" id="" name="cat_name" required>
        {% for data in cat %}
            <option value="{{data.id}}"
                {% if editsub_obj and editsub_obj.category_name in data.category_name %} 
                   selected
                {%endif%}>
                {{data.category_name}}
            </option>
        {% endfor %}
   </select>