【发布时间】:2021-03-07 23:43:08
【问题描述】:
这个问题被问了很多次,但我认为我在 Django 模板中遇到了字符串问题
我有一个选择标签,我想从数据库中选择默认选项
<select name="category" class="form-control" required="" id="id_category">
<option value="" >--------</option>
{% for cat in all_categories %}
<option value="{{cat}}" {% if form.instance.category == cat %} selected {% endif %}> {{cat}}</option>
{% endfor %}
</select>
我的 {{cat}} 变量的值为“Django Book”,而 {{form.instance.category}} 也具有相同的值,即“Django Book”。
但它没有选择所需的选项
但是,我在另一部分使用了类似的逻辑
<select class="form-control" id="client" required name="client">
<option value=" ">-----</option>
{% for customer in all_customers %}
<option value="{{customer.pk}}" {% if form.instance.client_id.pk == customer.pk %}selected{% endif %}>{{customer}}</option>
{% endfor %}
</select>
但这次我比较 ids 以选择默认选项并且它有效。
上面的代码有什么问题??这是字符串的问题吗?以及如何克服这一点。
另外,我想在第一个代码示例中的 value 属性中设置字符串。
感谢您的帮助。
【问题讨论】:
-
字符串比较在模板中也很简单,所以我认为这不是问题。这类问题的大多数来自变量中的拼写错误或错误数据。因此,我建议在选择标记之前放置一些调试数据,例如
form.instance.category is [{{form.instance.category}}],然后在浏览器的“检查”元素中检查选择标记的选项值。 -
@datosula,我试过
form.instance.category is [{{form.instance.category}}],它给出的字符串与select标签中value中的字符串完全相同,我还仔细检查了拼写错误,数据存储在CharField 在我的模型中,但仍然没有选择正确的选项
标签: html django django-templates