Виджеты для ChoiceField в modelform

Я использую modelform для своей формы Post и использую стартовый код bootstrap в качестве base.html, но так как я использую {% csrf_token %} {{form.as_p}} на своей странице add_blog, bootstrap не работает и поэтому ему требуется class='form-control', мне удалось сделать это для всех моих полей, кроме Choice input, если я включаю моего автора (поле выбора) в виджеты, я получаю TypeError: init() получил неожиданный аргумент ключевого слова 'attrs'

class PostForm(forms.ModelForm):
class Meta:

    model = Post
    fields = ("title", "title_tag", "author", "body")
    widget = forms.Select(attrs={"class": "form-control"})

    widgets = {
        'title': TextInput(attrs={'class': 'form-control'}),
        'title_tag': TextInput(attrs={'class': 'form-control'}),
        'body': Textarea(attrs={'class': 'form-control'}),
        'author': ChoiceField(attrs={'class': 'form-control'})


    }

А ChoiceField [Django-doc] - это поле формы, а не виджет формы. Виджет по умолчанию ChoiceField - это Select [Django-doc]. Таким образом, вы можете указать использовать этот виджет с:

class PostForm(forms.ModelForm):
    class Meta:
        model = Post
        fields = ('title', 'title_tag', 'author', 'body')

        widgets = {
            'title': TextInput(attrs={'class': 'form-control'}),
            'title_tag': TextInput(attrs={'class': 'form-control'}),
            'body': Textarea(attrs={'class': 'form-control'}),
            'author': Select(attrs={'class': 'form-control'})
        }
Вернуться на верх