在 Django 自定义选择中不起作用,django,python-3.x,select,jinja2,option"/>

首页 > 解决方案 > 在 Django 自定义选择中不起作用

问题描述

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

预期的 :

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

实际的 :

没有一个选项显示为选中状态。

标签: djangopython-3.xselectjinja2option

解决方案


您的代码可以减少到::

    <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>

推荐阅读