【发布时间】:2019-04-10 17:17:54
【问题描述】:
我正在尝试获取一个包含姓名和月份的表格,并将返回具有该姓名和月份的学生(考勤系统)。我正在为表单使用 MultipleChoiceField,但它不会在浏览器中呈现。我也在使用 Materialize CSS。我如何对这个问题进行排序?我也在手动渲染表单字段。
forms.py:
class attendenceFinder(forms.Form):
months = ((1, 'JAN'),
(2, 'FEB'),
(3, 'MAR'),
(4, 'APR'),
(5, 'MAY'),
(6, 'JUN'),
(7, 'JUL'),
(8, 'AUG'),
(9, 'SEP'),
(10, 'OCT'),
(11, 'NOV'),
(12, 'DEC')
)
name = forms.CharField()
month = forms.MultipleChoiceField(widget=forms.SelectMultiple, choices=months)
attendence.html:
<form action="/get_attendence/", method="post">
<div class="container">
{{ form.non_field_errors }}
<div class="fieldWrapper">
{{ form.name.errors }}
<label for="{{ form.name.id_for_label }}">Name</label>
{{ form.name }}
</div>
<div class="fieldWrapper">
{{ form.month.errors }}
<label for="{{ form.month.id_for_label }}">{{form.month}}
<span>{{ form.month.label }}</span>
</label>
</div>
<button class="waves-effect waves-light btn-large lime accent-2 black-text" type="submit" name="action">Submit
<i class="material-icons right">send</i>
</div>
</form>
页面来源:
<div class="fieldWrapper">
<select name="month" required id="id_month" multiple>
<option value="1">JAN</option>
<option value="2">FEB</option>
<option value="3">MAR</option>
<option value="4">APR</option>
<option value="5">MAY</option>
<option value="6">JUN</option>
<option value="7">JUL</option>
<option value="8">AUG</option>
<option value="9">SEP</option>
<option value="10">OCT</option>
<option value="11">NOV</option>
<option value="12">DEC</option>
</select>
<span>Month</span>
</div>
浏览器中的表单:
名称字段呈现正常,但月份多项选择不呈现。
【问题讨论】:
-
为什么要将字段包装在
-
我在其他一些问题中看到了这一点,并认为它可能有助于渲染,因为 Materialize CSS。
-
HTML 在您的浏览器中显示什么? (只是里面的部分)我在问题中添加了一个页面源。如果这就是你想要的?如您所见,选项在那里。你只是不应该把 里面