diff --git a/src/servala/core/crd.py b/src/servala/core/crd.py index 6fc4219..b66fef8 100644 --- a/src/servala/core/crd.py +++ b/src/servala/core/crd.py @@ -1,10 +1,13 @@ import re +from django import forms from django.core.validators import MaxValueValidator, MinValueValidator, RegexValidator from django.db import models from django.forms.models import ModelForm, ModelFormMetaclass from django.utils.translation import gettext_lazy as _ +from servala.core.models import ServiceInstance + def generate_django_model(schema, group, version, kind): """ @@ -14,6 +17,8 @@ def generate_django_model(schema, group, version, kind): # defaults = {"apiVersion": f"{group}/{version}", "kind": kind} model_fields = {"__module__": "crd_models"} + for field in ("name", "organization", "context"): + model_fields[field] = ServiceInstance._meta.get_field(field) model_fields.update(build_object_fields(spec, "spec")) meta_class = type("Meta", (), {"app_label": "crd_models"}) @@ -110,6 +115,9 @@ def get_django_field( class CrdModelFormMixin: def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) + + for field in ("organization", "context"): + self.fields[field].widget = forms.HiddenInput() # self.fields["apiVersion"].disabled = True # self.fields["kind"].disabled = True