Python Django multiplechoicefield未在页面上呈现
我正在尝试获取一个包含姓名和月份的表单,并返回具有该姓名和月份的学生(考勤系统)。我正在对表单使用MultipleChiceField,但它不会在浏览器中呈现。我也在使用物化CSS。如何对该问题进行排序?我还手动呈现表单字段 forms.py:Python Django multiplechoicefield未在页面上呈现,python,html,django,Python,Html,Django,我正在尝试获取一个包含姓名和月份的表单,并返回具有该姓名和月份的学生(考勤系统)。我正在对表单使用MultipleChiceField,但它不会在浏览器中呈现。我也在使用物化CSS。如何对该问题进行排序?我还手动呈现表单字段 forms.py: class attendenceFinder(forms.Form): months = ((1, 'JAN'), (2, 'FEB'), (3, 'MAR'), (4
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)
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')
)
month = forms.MultipleChoiceField(choices=months, widget=forms.Select(
choices=months,
attrs={'class': 'browser-default'}))
attentince.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>
{{form.non_field_errors}}
{{form.name.errors}
名称
{{form.name}
{{form.month.errors}}
{{form.month}
{{form.month.label}
提交
发送
页面来源:
<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>
简
功能电子块
破坏
四月
也许
六月
七月
AUG突击步枪
九月
十月
十一月
十二月
月
浏览器中的表单:
“名称”字段呈现良好,但“月份”多项选择没有。Materialize CSS希望看到带有class=“browser default”的标记。但是,Django表单不添加该类。因此,必须在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')
)
month = forms.MultipleChoiceField(choices=months, widget=forms.Select(
choices=months,
attrs={'class': 'browser-default'}))
所有功劳都归于此链接:
具体化CSS希望看到带有class=“browser default”的标记。但是,Django表单不添加该类。因此,必须在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')
)
month = forms.MultipleChoiceField(choices=months, widget=forms.Select(
choices=months,
attrs={'class': 'browser-default'}))
所有功劳都归于此链接:
Django材质对于使用Materializecss的表单呈现非常有用。这是该项目的链接 Django材质对于使用Materializecss的表单渲染非常有用。这是该项目的链接 为什么要将字段包装在中?我在其他一些问题中看到了这一点,并认为这可能有助于呈现,因为Materialize CSS。HTML在浏览器中显示了什么?(只是问题中的部分)我在问题中添加了一个页面来源。如果这是你想要的?正如你所看到的,有很多选择。你不应该把这个字段放在里面,为什么你要把这个字段包装在里面?我在其他一些问题中看到了这一点,并认为它可能有助于呈现,因为具体化CSS。HTML在你的浏览器中显示了什么?(只是问题中的部分)我在问题中添加了一个页面来源。如果这是你想要的?正如你所看到的,有很多选择。你不应该把它放在盒子里