Я пытаюсь переопределить виджет формы мастера django formtools, но он просто использует стандартный виджет

Я имею следующую форму

class ProviderSignUp1(forms.ModelForm):
    class Meta:
        model = models.Provider
        fields = [ 
            'childcare_type_informal',
            'childcare_type_accredited',
        ]
        wigdets = {
            'childcare_type_informal': PatchRadioSelect(
                attrs={
                    'class':'form-control'
                }
            ),
            'childcare_type_accredited': PatchRadioSelect(
                attrs={
                    'class':'form-control'
                }
            )
        }

    def clean(self):
        cleaned_data = self.cleaned_data
        if cleaned_data['childcare_type_informal'] == True and cleaned_data['childcare_type_accredited'] == True:
            raise ValidationError("You must select only one type of childcare")
        if cleaned_data['childcare_type_informal'] == False and cleaned_data['childcare_type_accredited'] == False:
            raise ValidationError("You must select at least one type of childcare")

        return super().clean()

Виджет определяется как

from django.forms.widgets import RadioSelect

class PatchRadioSelect(RadioSelect):
    template_name = 'userprofiles/form_widgets/radio.html'
    option_template_name = 'userprofiles/form_widgets/radio_option.html'

А мой волшебник:

Мой виджет игнорируется и используется стандартный виджет. Обратите внимание, что я не могу изменить ни один из виджетов из стандартных и могу только добавить атрибуты к существующему виджету. Что я делаю не так?

На всякий случай, если кто-то еще столкнется с такой же проблемой, я обнаружил, что если я определяю __init__ в первой форме в мастере, я могу затем переопределить виджеты в __init__ в любой форме, в которой мне нужно их использовать. Но это не работает, если я не определяю __init__ в первой форме.

Я думаю, что это скорее обходной путь, чем решение.

Вернуться на верх