django - 在 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 匹配来选择。
实际的 :
没有一个选项显示为选中状态。
解决方案
您的代码可以减少到::
<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>