我有一個像這樣的表格:class ExampleForm(forms.ModelForm): class Meta: model = Example fields = ('field1','field2')現在,如果將實例傳遞給它,我想添加一個附加字段。這意味著,如果我創建一個帶有實例的表單(用于編輯該對象),我想更改正在顯示的字段。我知道我可以為此目的使用創建另一個表單并創建一個實例而不是使用它。但是,有沒有辦法以同樣的形式做到這一點?
1 回答

皈依舞
TA貢獻1851條經驗 獲得超3個贊
我有一個像這樣的表格:
class ExampleForm(forms.ModelForm):
class Meta:
model = Example
fields = ('field1','field2')
現在,如果將實例傳遞給它,我想添加一個附加字段。這意味著,如果我創建一個帶有實例的表單(用于編輯該對象),我想更改正在顯示的字段。
我知道我可以為此目的使用創建另一個表單并創建一個實例而不是使用它。但是,有沒有辦法以同樣的形式做到這一點?重寫該__init__方法,并修改self.fields何時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()
添加回答
舉報
0/150
提交
取消