我有与ManyToManyField模型的Django ModelForm。我想将此字段的小部件更改为CheckboxSelectMultiple。我可以在不覆盖表单定义中的字段的情况下执行此操作吗?

我经常使用类似于以下的代码:

class MyModel(ModelForm):
    m2m_field = forms.ModelMultipleChoiceField(queryset = SomeModel.objects.all(),
                                               widget = forms.CheckboxSelectMultiple())

还有其他方法吗?

编辑:我需要这个用于Django 1.1.1项目

最佳答案

另一种方法是在ModelForm的 init 中执行此操作:

class MyModel(ModelForm):
    def __init__(self, *args, **kwargs):
        super(MyModel, self).__init__(*args, **kwargs)
        self.fields['m2m_field'].widget = forms.CheckboxSelectMultiple()

    [...]

关于django - 如何在不覆盖ModelForm中的字段定义的情况下将ManyToManyField小部件更改为CheckboxSelectMultiple,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3167793/

10-12 22:09