On Dec 18, 7:18 pm, Cortland Klein <[email protected]> wrote:
> I'm using inlineformset_factory in one of my views, which is working
> great, except now I'd like to change the widget for one of the fields
> (in case anyone's curious, an AdminFileWidget). For clarification this
> is my own view and has nothing to do with contrib/admin.
>
> I see that inlineformset_factory has something for fields, but I'm not
> sure what to pass to it to override a field's widget:
>
> # django/forms/models.py
>
> > def inlineformset_factory(parent_model, model, form=ModelForm,
> > formset=BaseInlineFormSet, fk_name=None,
> > fields=None, exclude=None,
> > extra=3, can_order=False, can_delete=True,
> > max_num=0,
> > formfield_callback=lambda f: f.formfield()):
Panta has given you one possibility, using the formfield_callback
parameter. An alternative is to define your own ModelForm subclass and
pass that in the form parameter.
class FileForm(forms.ModelForm):
file = forms.FileField(widget=AdminFileWidget)
class Meta:
model = File
FileFormSet = inlineformset_factory(Version, File, extra=1,
form=VersionForm)
--
DR.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Django users" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---