Django: How to change a field widget in a Inline Formset

nsbm picture nsbm · Aug 21, 2012 · Viewed 12.8k times · Source

I am new to Django and I think I am missing this in the docs.
The problem is that in inline-formset I dont declare a form, just pass two models to construct it.
I want to know how can I change a widget of a single field using inline formset?

Answer

Wtower picture Wtower · May 12, 2015

As of Django 1.6, you can use the widgets parameter of modelformset_factory in order to customize the widget of a particular field:

AuthorFormSet = modelformset_factory(Author, widgets={
    'name': Textarea(attrs={'cols': 80, 'rows': 20})
})

and therefore the same parameter for inlineformset_factory (which uses modelformset_factory):

AuthorInlineFormSet = inlineformset_factory(Author, Book, fields=['name'], widgets={
    'name': Textarea(attrs={'cols': 80, 'rows': 20})
})