我有一个像这样的表格: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
提交
取消
