我有如下形式定义
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的完美的作品,当我将它实例化视图的形式
form = MyForm(readOnly=True, instance=ModelA)
但是当我尝试使用它在inlineformset_factory
Formset = inlineformset_factory(ModelA, ModelB form=MyForm(readOnly=True))
我得到的错误“NoneType对象是不可调用的。”
我想这是因为窗体被不模型实例初始化
因为MyForm的被内嵌内初始化
我知道这个问题是我使用的内嵌调用MyForm的方式
因为我得到了同样的错误,如果我可以使用如下的
Formset = inlineformset_factory(ModelA, ModelB form=MyForm(readOnly=True))
Formset = inlineformset_factory(ModelA, ModelB form=MyForm())
但它的工作原理,如果我做
Formset = inlineformset_factory(ModelA, ModelB form=MyForm)
显然只读PARAM默认为False,我的投入不会改变。 有谁知道我可以通过只读PARAM使用inlineformset_factory不然我还能怎么达到我想要什么MyForm的?
由于安德鲁