diff --git a/src/servala/core/crd.py b/src/servala/core/crd.py index 173b26c..f356c7b 100644 --- a/src/servala/core/crd.py +++ b/src/servala/core/crd.py @@ -173,6 +173,11 @@ class CrdModelFormMixin: for field in ("organization", "context"): self.fields[field].widget = forms.HiddenInput() + if self.instance and self.instance.pk: + self.fields["name"].disabled = True + self.fields["name"].help_text = _("Name cannot be changed after creation.") + self.fields["name"].widget = forms.HiddenInput() + def strip_title(self, field_name, label): field = self.fields[field_name] if field and field.label.startswith(label): @@ -183,7 +188,10 @@ class CrdModelFormMixin: # General fieldset for non-spec fields general_fields = [ - field for field in self.fields if not field.startswith("spec.") + field_name + for field_name, field in self.fields.items() + if not field_name.startswith("spec.") + and not isinstance(field.widget, forms.HiddenInput) ] if general_fields: fieldsets.append(