1 回答

TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超3個(gè)贊
我有一個(gè)像這樣的表格:
class ExampleForm(forms.ModelForm):
class Meta:
model = Example
fields = ('field1','field2')
現(xiàn)在,如果將實(shí)例傳遞給它,我想添加一個(gè)附加字段。這意味著,如果我創(chuàng)建一個(gè)帶有實(shí)例的表單(用于編輯該對象),我想更改正在顯示的字段。
我知道我可以為此目的使用創(chuàng)建另一個(gè)表單并創(chuàng)建一個(gè)實(shí)例而不是使用它。但是,有沒有辦法以同樣的形式做到這一點(diǎn)?重寫該__init__方法,并修改self.fields何時(shí)instance傳遞給表單。
class ExampleForm(forms.ModelForm):
class Meta:
model = Example
fields = ('field1','field2')
def __init__(self, *args, **kwargs):
super(ExampleForm, self).__init__(*args, **kwargs)
if kwargs.get('instance'):
self.fields['field3'] = forms.CharField()
添加回答
舉報(bào)