python - 多选 Django 复选框表单验证

标签 python django forms

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

class TreePreference(models.Model):
    TREE_CHOICES = ('red_trees',
                    'blue_trees',
                    'purple_trees',
                   )
    tree_knowledge = model.CharField(blank=True, max_length=10)
    tree_type = model.CharField(blank=True, max_length=20)
    favourite_trees = models.CharField(choices=TREE_CHOICES, max_length=50, blank=True)

最佳答案

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

关于python - 多选 Django 复选框表单验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34314976/

相关文章:

python - 使用 xhtml2pdf 将 unicode 模板转换为 pdf 时出现问题

Django CSRF 验证

python - 我如何检查django模板中的字典中是否有内容

python - django项目如何检测系统是否安装了django?

python - 如何将元组分配给命名元组?

python - 如何从嵌入的字典/列表中提取所有值?

python - 检查带有特殊字符的 unicode

javascript - 阻止人们通过导航到其他地方来绕过我的表单验证

forms - 通过验证更改用户密码( symfony2 )

javascript - 从表单中添加和删除元素,第一次单击有效,后续单击无效