我有一个带有favourite_trees
字段的表单,我希望它的3个选项显示为复选框。我希望用户能够选中0到3个复选框,并保存这些结果。但是,当我试图保存表单时,favourite_trees
字段只是保存为一个空列表。其他字段保存正确。如何修复它,使选中的复选框保存?在
在表单.py在
class TreesForm(forms.models.ModelForm):
favourite_trees = forms.MultipleChoiceField(choices=TreePreference.TREE_CHOICES,
widget=forms.CheckboxSelectMultiple())
class Meta:
model = TreePreference
fields = (
'tree_knowledge',
'tree_type',)
widgets = {
'tree_type': forms.HiddenInput(),
}
在模型.py在
^{pr2}$
还有一个包
django-multiselectfield
,它可以帮助您存储不需要单独模型的多个(字符串)值。在因为您的
favourite_trees
字段是一个带有choices
的CharField
,所以它在TREE_CHOICES
中只存储了一种类型的树作为字符串,所以您不能直接使用MultipleChoiceField
来保存它。您应该使用创建一个名为TreeChoice
的单独模型,然后将字段favourite_trees
更改为指向该模型的ManyToManyField
。在相关问题 更多 >
编程相关推荐