Try using a lambda function. The problem is that the factory wants a callable that creates a form, not a form instance (ie it wants to be able to execute MyForm() for each form in the formset.
Formset = inlineformset_factory(ModelA, ModelB form=lambda: MyForm (readOnly=True)) Note I've not tried this.... and never actually used formsets either! On Oct 23, 12:30 am, Andew Gee <[email protected]> wrote: > Hi, > > I have the following Form defined > > class MyForm(ModelForm) > > def __init__(self, readOnly=False, *args, **kwargs): > if readOnly: > Do stuff to make the inputs readonly > > MyForm works perfectly when I instantiate it in the view as a form > form = MyForm(readOnly=True, instance=ModelA) > > but when I try to use it in the inlineformset_factory I get the error > > NoneType object is not callable. > > I know the problem id the way I am using the MyForm in the inline call > because I get the same error if I do either of the following > > Formset = inlineformset_factory(ModelA, ModelB form=MyForm > (readOnly=True)) > Formset = inlineformset_factory(ModelA, ModelB form=MyForm()) > > but it works if I do > > Formset = inlineformset_factory(ModelA, ModelB form=MyForm) > > obviously the readOnly param defaults to False and my inputs are not > changed. > > Does anyone know how I can pass the readOnly param to MyForm using the > inlineformset_factory or how else I can achieve what I want? > > Thanks > Andrew --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---

