I have the following form defined
class MyForm(ModelForm): def __init__(self, readOnly=False, *args, **kwargs): super(MyForm,self).__init__(*args,**kwrds) if readOnly: Do stuff to make the inputs readonly
MyForm works fine when I create it as a form
form = MyForm(readOnly=True, instance=ModelA)
but when i try to use it in inlineformset_factory
Formset = inlineformset_factory(ModelA, ModelB form=MyForm(readOnly=True))
I get the error "NoneType object is not called."
I think this is because the form is initialized without an instance of the model
because myform is initialized inside the inline
I know the problem is how I use MyForm in an inline call
because I get the same error if I do one 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 parameter is False by default, and my inputs are not changed. Does anyone know how I can pass the readOnly parameter to MyForm using inlineformset_factory or how else can I achieve what I want?
Thanks Andrew
source share