从 visible_fields() 中查找可见字段的类型

Find the type of visible field from visible_fields()

我的 forms.py 中有以下代码。我正在使用 ModelForm 生成表单视图

def __init__(self, *args, **kwargs):
        super(NewPlayerForm, self).__init__(*args, **kwargs)
        for visible in self.visible_fields():
            print(visible)
            visible.field.widget.attrs['class'] = 'form-control'

目的是不将 form-control class 放在 boolen/checkbox 类型的字段上。但是我很难弄清楚如何从上面的行中获取字段类型。

print(visible) 在控制台中显示以下内容

我尝试使用 field.typefield.getType(),似乎没有任何效果。

您可以通过查找 .field.widget.input_type:

来检查这一点
def __init__(self, *args, **kwargs):
    super(NewPlayerForm, self).__init__(*args, **kwargs)
    for visible in self.visible_fields():
        if visible.field<strong>.widget.input_type == 'checkbox'</strong>:
            visible.field.widget.attrs['class'] = 'form-control'