Django通过CheckboxSelectMultiple窗口小部件选择groupby [英] Django form choices groupby with CheckboxSelectMultiple widget
问题描述
更新:看起来我必须创建自定义窗口小部件(在Django中分组复选框选择多个选项)。在完成后会包括最终的代码。
UPDATE: Looks like I will have to create custom widget (Grouping CheckboxSelectMultiple Options in Django). Will include the final code when I'm done.
我已经设置了一个django形式的选项字段,类似于另一个 SO问题。
I have set up a choice field in a django form similar to another SO question.
但是,我想使它成为一个 CheckboxSelectMultiple
窗口小部件,但是在类Meta中创建整个组的复选框。这是我需要在 __ init __
中执行的操作,如果是这样?
However, I would like to make it a CheckboxSelectMultiple
widget, but doing so in the class Meta creates a checkbox for the entire group. Is this something I need to do in the __init__
, if so how?
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中选择多个选项
Looks like creating a custom widget was the way to go - as per Grouping CheckboxSelectMultiple Options in Django
注意:我按照如何在Django Select窗口小部件中分组?
这篇关于Django通过CheckboxSelectMultiple窗口小部件选择groupby的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!