我在queryset文件中生成了一个forms.py,该文件传递到我的template中。模板结果是基于查询集的多选字段。 Web浏览器演示是正确的-将查询集呈现为下拉列表,我可以从中进行选择。

这是template代码:

<tr><td>{{ form.jury_name | placeholder:'Jury Name' }}</td></tr>
<tr><td><select>
    {% for item in form.parent_jury.field.queryset %}
        <option name="parent_jury" value="{{ item }}">{{ item }}</option>
    {% endfor %}
</select></td></tr>


这些全部包含在table中。

提交formmethod = "POST")时,POST词典具有所有正确的键值,但parent_jury键除外,该键会发布''值。

我已经在views.py端通过了几种SO解决方案,但是它们并没有改变以下事实:可用于clean()的信息缺少'parent_jury'的选择字段值。如何从列表中获取选择的选项以附加到'parent_jury'键?

最佳答案

我认为您呈现的HTML并非应有的样子:name="..."应该是<select>标签的一部分,而不是<option>s

<tr><td>{{ form.jury_name | placeholder:'Jury Name' }}</td></tr>
<tr><td><select name="parent_jury">
    {% for item in form.parent_jury.field.queryset %}
        <!-- remove the name here -->
        <option value="{{ item }}">{{ item }}</option>
    {% endfor %}
</select></td></tr>


(当然,您可以删除<!-- comment -->部分(这仅是为了引起对此更改的注意)。

10-08 03:11