在ModelForm创建时显示一个字段,但在更新时隐藏它

时间:2011-07-26 13:49:29

标签: python django django-forms

我有一个简单的ModelForm,如下所示:

class ProfInfo(forms.ModelForm):
    email = forms.EmailField(
        required=True, label=_("Email")
    )

    class Meta:
        model = Prof

当我使用模型表单创建或更新记录时会显示email字段,但是当我通过表单更新时,我想将其删除。我怎样才能做到这一点?我知道我在del self.fields['email']方法中执行了一个简单的__init__但是如何测试它是否正在更新或删除?

1 个答案:

答案 0 :(得分:3)

您可以检查form.instance.pk是否存在。

类似的东西:

def __init__(self, *args, **kwargs):
    super(ProfInfo, self).__init__(*args, **kwargs)
    if self.instance.pk:
        del self.field['email']