表單定義將自定義表單參數FORMSET
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)
顯然,readOnly參數默認爲False,我的輸入沒有改變。 有誰知道我可以如何使用inlineformset_factory將readOnly參數傳遞給MyForm,或者我可以如何實現我想要的?
感謝 安德魯
這將迫使我總是有readOnly的爲真,我的壞了道路II寫下上面的代碼。我希望readOnly的值可以是True或False,並且表單可以相應地工作。 (FormA = ModelB form = MyForm(readOnly = readONlyValue))' – 2009-10-26 01:15:53
您仍然可以使用這種模式......查看我更新的答案。 – brianz 2009-10-26 15:53:27