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

Uda*_*sia 5 django html-select jinja2 python-3.x

我将两个对象“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>

Run Code Online (Sandbox Code Playgroud)

预期的 :

selected 应与两个对象列表中的category_name 匹配进行选择。

实际的 :

没有任何选项显示为选中状态。

suh*_*lvs 1

您的代码可以减少为::

    <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>
Run Code Online (Sandbox Code Playgroud)