如何在ModelForm的__init __()方法中修改窗口小部件的属性?

Huu*_*uze 9 django widget django-forms

我想以编程方式修改Django ModelForm的init()方法中的字段的widget属性.到目前为止,我已尝试过以下内容

def __init__(self, *args, **kwargs):
    super(MyForm, self).__init__(*args, **kwargs)
    self.fields['my_checkbox'].widget_attrs(forms.CheckboxInput(attrs={'onclick':'return false;'}))
Run Code Online (Sandbox Code Playgroud)

不幸的是,这不起作用.有什么想法吗?

Ber*_*ant 18

def __init__(self, *args, **kwargs):
    super(MyForm, self).__init__(*args, **kwargs)
    self.fields['my_checkbox'].widget.attrs['onclick'] = 'return false;'
Run Code Online (Sandbox Code Playgroud)

  • `widget_attrs`是字段类上的一种方法,用于根据当前字段类返回应添加到窗口小部件的属性,例如.``CharFields`的`max_length`.你不应该像你想象的那样覆盖它,因为有必要让字段正常工作...... (2认同)