【发布时间】:2018-09-20 10:02:36
【问题描述】:
我尝试使用如下所示的 ChoiceField 呈现表单:
<div class="col-25">
<label for="category">Subcategory</label>
</div>
<div class="col-75">
<select name="category" id="id_category">
{% for x in FilterbyCategory.fields.category.choices %}
<option value="{{ x.0 }}"{% if FilterbyCategory.fields.category.value == x.0 %}selected{% endif %}>
{{ x.1 }}
</option>
{% endfor %}
</select>
</div>
当我提交表单时,我没有选择初始选项。 我这里有问题吗?
在视图函数中,我使用request.POST来创建一个实例:
filterbycategory = FilterbyCategory(request.POST)
然后我打印表单实例,我得到了这个:
<tr><th><label for="id_category">Category:</label></th><td>
<select name="category" id="id_category">
<option value="">---------</option>
<option value="1" selected>BMW</option>
</select></td></tr>
但是手动渲染的模板中没有选择该选项。
【问题讨论】:
-
检查
selected是否正在模板中呈现(通过查看html)并尝试在其中放置一个空格。此时它将呈现为<option value="1"selected>
标签: html django forms django-forms