当前位置:  开发笔记 > 编程语言 > 正文

在Django有没有办法显示选项作为复选框?

如何解决《在Django有没有办法显示选项作为复选框?》经验,为你挑选了1个好方法。

在管理界面和新形式中,有一个能够定义选择的出色帮手.你可以使用这样的代码:

APPROVAL_CHOICES = (
    ('yes', 'Yes'),
    ('no', 'No'),
    ('cancelled', 'Cancelled'),
)

client_approved = models.CharField(choices=APPROVAL_CHOICES)

在表单中创建一个下拉框,并强制用户选择其中一个选项.

我只是想知道是否有办法定义一组选项,其中可以使用复选框选择多个?(也很高兴能够说用户可以选择最大数量.)看起来这是一个可能实现的功能,它只是我似乎无法在文档中找到它.



1> Jonny Buchan..:

就表单库而言,您可以将MultipleChoiceField字段与CheckboxSelectMultiple小部件一起使用来执行此操作.您可以通过为该字段编写验证方法来验证所做的选择的数量:

class MyForm(forms.Form):
    my_field = forms.MultipleChoiceField(choices=SOME_CHOICES, widget=forms.CheckboxSelectMultiple())

    def clean_my_field(self):
        if len(self.cleaned_data['my_field']) > 3:
            raise forms.ValidationError('Select no more than 3.')
        return self.cleaned_data['my_field']

要在管理应用程序中获取此信息,您需要自定义ModelForm并覆盖相应ModelAdmin中使用的表单.

推荐阅读
低调pasta_730
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有