多选Django复选框表单验证

2024-09-29 19:23:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个带有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}$

Tags: 用户pytree表单列表modelstype选项
2条回答

还有一个包django-multiselectfield,它可以帮助您存储不需要单独模型的多个(字符串)值。在

因为您的favourite_trees字段是一个带有choicesCharField,所以它在TREE_CHOICES中只存储了一种类型的树作为字符串,所以您不能直接使用MultipleChoiceField来保存它。您应该使用创建一个名为TreeChoice的单独模型,然后将字段favourite_trees更改为指向该模型的ManyToManyField。在

相关问题 更多 >

    热门问题