You can create a custom ModelForm for the administrator to remove the field in __init__
class FooForm(forms.ModelForm): class Meta(object): model = Foo def __init__(self, *args, **kwargs): super(FooForm, self).__init__(*args, **kwargs) if self.instance and self.instance.pk:
EDIT: By emphasizing Johnβs comment about creating a read-only field, you can make it a hidden field and override purity to ensure that the value does not change.
class FooForm(forms.ModelForm): class Meta(object): model = Foo def __init__(self, *args, **kwargs): super(FooForm, self).__init__(*args, **kwargs) if self.instance and self.instance.pk:
source share