更新:カスタム ウィジェットを作成する必要があるようです ( Django の Grouping CheckboxSelectMultiple Options )。完了したら、最終的なコードを含めます。
別のSO questionと同様に、django フォームに選択フィールドを設定しました。
ただし、ウィジェットにしたいのですが、CheckboxSelectMultiple
メタクラスで行うと、グループ全体のチェックボックスが作成されます。これは で行う必要があり__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'