Django добавляет новые поля в модель внешней БД

Я пытаюсь интегрировать некоторые таблицы из БД Oracle, которая не является частью моего проекта Django. В этой БД есть 2 интересующие меня таблицы, первая из которых содержит 90% информации, а вторая - оставшиеся 10%. Я написал 2 модели для этих таблиц, которые выглядят примерно так:

class MoreRelevantModel(models.Model):
    FIELD_1 = models.IntegerField(primary_key=True, db_column="PK_COL_NAME")
    FIELD_2 = models.CharField(max_length=40, blank=True, db_column="CHAR_VALUE_COL_NAME")
    FIELD_3 = models.BooleanField(default=False, db_column="BOOL_VALUE_COL_NAME")

    class Meta:
        managed = False
        db_table = '"SomeOracleSchema"."SomeOracleTableName"'

class LessRelevantModel(models.Model):
    FIELD_1 = models.IntegerField(primary_key=True, db_column="PK_COL_NAME")
    FIELD_2 = models.CharField(max_length=40, blank=True, db_column="CHAR_VALUE_RELATED_TO_MoreRelevantModel_COL_NAME")
    FIELD_3 = models.BooleanField(default=False, db_column="BOOL_VALUE_COL_NAME")

    class Meta:
        managed = False
        db_table = '"SomeOracleSchema"."SomeOracleTableName"'

Я хотел бы полностью отказаться от вызова модели LessRelevantModel в моей бизнес-логике, и вместо этого я хочу просто вызвать MoreRelevantModel, и чтобы она автоматически извлекала из соответствующей записи LessRelevantModel значение FIELD_3. Мне пришла в голову идея написать это следующим образом:

class MoreRelevantModel(models.Model):
    FIELD_1 = models.IntegerField(primary_key=True, db_column="PK_COL_NAME")
    FIELD_2 = models.CharField(max_length=40, blank=True, db_column="CHAR_VALUE_COL_NAME")
    FIELD_3 = models.BooleanField(default=False, db_column="BOOL_VALUE_COL_NAME")

    class Meta:
        managed = False
        db_table = '"SomeOracleSchema"."SomeOracleTableName"'


    @cached_property
    def _LESS_RELEVANT_ENTRY(self):
        matching_entry = LessRelevantModel.objects.filter(FIELD_2=self.FIELD_2)
        return matching_entry [0] if matching_entry.count() > 0 else None

    @cached_property
    def LESS_RELEVANT_ENTRY_FIELD_3(self):
        return self._LESS_RELEVANT_ENTRY.FIELD_3 if self._LESS_RELEVANT_ENTRY else None

Вышеприведенная логика вроде как работает, но при запросе конкретной записи MoreRelevantModel она не подтягивает автоматически значение в LESS_RELEVANT_ENTRY_FIELD_3. Я бы предпочел, чтобы она это делала. Есть ли какой-нибудь изящный способ на тему Django, чтобы это произошло?

Вернуться на верх