Найдите тип видимого поля из 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 на поле типа boolen/checkbox. Но мне трудно понять, как получить тип поля из приведенных выше строк.

print(visible) показывает следующее в консоли

Я пробовал использовать field.type или field.getType(), кажется, ничего не работает. enter image description here

Вы можете проверить это, найдя .field.widget.input_type:

def __init__(self, *args, **kwargs):
    super(NewPlayerForm, self).__init__(*args, **kwargs)
    for visible in self.visible_fields():
        if visible.field.widget.input_type == 'checkbox':
            visible.field.widget.attrs['class'] = 'form-control'
Вернуться на верх