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
-~----------~----~----~----~------~----~------~--~---

Reply via email to