Django通过CheckboxSelectMultiple窗口小部件选择groupby [英] Django form choices groupby with CheckboxSelectMultiple widget

查看:190
本文介绍了Django通过CheckboxSelectMultiple窗口小部件选择groupby的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

更新:看起来我必须创建自定义窗口小部件(在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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆