Django добавление атрибутов в форму булевой модели

Моя модель формы выглядит следующим образом:

class ToggleSettingsForm(forms.ModelForm):
    class Meta:
        model = ToggleSettings

        fields = (
            'background',
        )

        widgets = {
            'background': forms.BooleanField(widget=forms.CheckboxInput(attrs={'type': 'checkbox', 'class': 'checkbox', 'id': 'your_id'}))
        }

И я получаю эту ошибку в шаблоне

AttributeErro

'BooleanField' object has no attribute 'is_hidden'

Request Method:     GET
Request URL:    http://localhost:8000/auth/dashboard/
Django Version:     4.0.1
Exception Type:     AttributeError

Но мне нужно булево поле (checkbox) с ID, а также классы.

Как еще я могу дать булево поле модели формы ID и классам?

Добавить атрибуты к BooleanField я попробовал с помощью этого поста: Как присвоить атрибут id полю BooleanField в ModelForm для jsonresponse

Ваша форма должна выглядеть следующим образом:

class ToggleSettingsForm(forms.ModelForm):
    class Meta:
        model = ToggleSettings

        fields = (
            'background',
        )

        widgets = {
            'background': forms.CheckboxInput(attrs={ 'class': 'checkbox', 'id': 'your_id'}))
        }

посмотрите документы

Django BooleanField[Django-doc] является не виджетом, а FormField, поэтому измените forms.py как

class ToggleSettingsForm(forms.ModelForm):
    class Meta:
        model = ToggleSettings

        fields = (
            'background',
        )

        widgets = {
            'background': forms.CheckboxInput(attrs={'type': 'checkbox', 'class': 'checkbox', 'id': 'your_id'})
        }

Вы можете посмотреть Встроенные виджеты[Django Doc] для более подробной информации.

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