【发布时间】:2013-01-14 11:09:56
【问题描述】:
更新:看来我必须创建自定义小部件 (Grouping CheckboxSelectMultiple Options in Django)。完成后将包含最终代码。
我在 django 表单中设置了一个选择字段,类似于另一个 SO question。
但是,我想将其设为 CheckboxSelectMultiple 小部件,但在 Meta 类中这样做会为整个组创建一个复选框。这是我需要在__init__ 中做的事情吗?如果需要,该怎么做?
class FooIterator(models.ModelChoiceIterator):
def __init__(self, *args, **kwargs):
super(models.ModelChoiceIterator, self).__init__(*args, **kwargs)
def __iter__(self):
for thing in MyModel.objects.all():
yield (thing.name, [(x.id, x.name) for x in MyModel2.objects.filter(name=thing.name)])
class MyForm(ModelForm):
def __init__(self, *args, **kwargs):
super(MyForm, self).__init__(*args, **kwargs)
self.fields['myField'].choices = FooIterator()
for x in self.fields:
self.fields[x].widget.attrs['class'] = 'input-block-level'
【问题讨论】:
标签: django forms django-forms