在Django有一种方法来显示selectcheckbox?

在pipe理界面和新forms中,有能够定义select的明智帮手。 你可以使用这样的代码:

APPROVAL_CHOICES = ( ('yes', 'Yes'), ('no', 'No'), ('cancelled', 'Cancelled'), ) client_approved = models.CharField(choices=APPROVAL_CHOICES) 

在窗体中创build一个下拉框并强制用户select其中一个选项。

我只是想知道是否有一种方法来定义一组select可以使用checkboxselect多个? (也会很高兴能够说,用户可以select最大数量的。)它似乎是一个function,可能是实现的,这只是我似乎无法在文档中find它。

2 Solutions collect form web for “在Django有一种方法来显示selectcheckbox?”

就表单库而言,您可以使用带有CheckboxSelectMultiple小部件的MultipleChoiceField字段来执行此操作。 你可以通过编写一个字段的validation方法来validationselect的数量:

 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'] 

要在pipe理员应用程序中获得此信息,您需要自定义一个ModelForm并覆盖适当的ModelAdmin中使用的表单 。

@JonnyBuchanan给出了正确的答案。

但是,如果你需要在Djangopipe理员中为许多模型使用它,并且你(像我一样)懒得自定义一个ModelForm并在ModelAdmin类中使用正确的方法,你可以使用这种方法:

http://www.abidibo.net/blog/2013/04/10/convert-select-multiple-widget-checkboxes-django-admin-form/

  • 如何写内联if语句来打印?
  • 将argparse.Namespace()作为字典对待的正确方法是什么?
  • flask-sqlalchemy或sqlalchemy
  • Python编码标准/最佳实践
  • Django:testing页面是否已redirect到所需的url
  • 我如何确定在Python中的对象的大小?
  • Python中的mkdir -pfunction
  • 什么是Python蛋caching(PYTHON_EGG_CACHE)?
  • Python if-else short-hand
  • 为什么在Google App Engine上使用Django?
  • Python设置()如何检查两个对象是否相等? 对象需要定义什么方法来自定义?