Source code for endoreg_db.models.administration.ai.active_model

from django.db import models
from typing import TYPE_CHECKING

if TYPE_CHECKING:
    #FIXME Validate import
    from endoreg_db.models.metadata import ModelMeta


class ActiveModelManager(models.Manager):
    def get_by_natural_key(self, name):
        return self.get(name=name)
    
[docs] class ActiveModel(models.Model): """ ActiveModel represents an active instance of a model within the application. Attributes: name (str): A unique identifier for the active model. model_meta (ModelMeta, optional): A reference to the metadata of the model. This field acts as a ForeignKey to the ModelMeta model and can be null. Notes: - The model_meta attribute is configured with on_delete=models.SET_NULL, meaning that if the related ModelMeta record is deleted, model_meta will be set to null. - Type hints for model_meta are provided under a TYPE_CHECKING conditional import to avoid circular dependencies, importing ModelMeta only when type checking is performed. Managers: objects (ActiveModelManager): Custom manager providing specialized query capabilities for ActiveModel instances. """ name = models.CharField(max_length=255, unique=True) model_meta = models.ForeignKey('ModelMeta', on_delete=models.SET_NULL, blank=True, null=True) if TYPE_CHECKING: model_meta: "ModelMeta" objects = ActiveModelManager()