我有一个看起来像这样的Django模型:
class Group(models.Model):
group_name = models.CharField(max_length=64)
我的最终目标是为我的数据库中所有可能的Group
呈现一个HTML复选框列表,然后在各种AJAX请求中使用。我可以通过(在模板中)手动创建表单并使用适当的标签在<input type='checkbox'>
内呈现它,然后在视图中手动处理表单处理来完成此操作。
我想看看是否使用Django Forms为我节省了任何工作。我创建了一个Form
,如下所示:
class GroupForm(forms.ModelForm):
class Meta:
model = Groups
fields = ['group_name']
widgets = {
'group_name': forms.CheckboxInput,
}
然后使用我数据库中的所有Groups
对象创建一个formset。
GroupFormSet = modelformset_factory(Groups, form=GroupForm)
all_groups_can_edit = GroupFormSet(queryset=Groups.objects.all())
当在我的模板中呈现时,生成的HTML如下所示:
<div>
<label for="id_form-0-group_name">Group name:</label><input id="id_form-0-group_name" maxlength="64" name="form-0-group_name" type="checkbox" value="Student">
</div>
我的复选框的标签始终为'Group name:'
,但该类的值是正确的(在此示例中为'Student'
)。
我希望我的HTML看起来像这样:
<div>
<label for="id_form-0-group_name">Student:</label><input id="id_form-0-group_name" maxlength="64" name="form-0-group_name" type="checkbox" value="Student">
</div>
如何更改GroupForm
类以使复选框的标签与表单中使用的特定对象的名称相对应?