为了账号安全,请及时绑定邮箱和手机立即绑定

如果将实例传递给表单,如何更改显示的字段?

如果将实例传递给表单,如何更改显示的字段?

喵喵时光机 2022-06-02 15:52:37
我有一个像这样的表格: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()


查看完整回答
反对 回复 2022-06-02
  • 1 回答
  • 0 关注
  • 141 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号