Я работаю над устаревшей базой данных, создающей API, и мне нужно смоделировать некоторые сущности, соблюдая некоторую иерархию, которая уже существует. API предназначен только для чтения, поэтому я стараюсь избегать создания новой таблицы в этом кенарио.
Есть таблица с именем regionsubregion
, в которой есть idregion
и idsubregion
, необходимые для создание связи между Регионом и Подрегионом. Я делал просто ForeingKeys
вот так:
class Region(BaseModel):
id_region = models.IntegerField(primary_key=True, db_column="idregion")
name = models.CharField(verbose_name="Nome", db_column="description", max_length=80)
uf = models.CharField(
verbose_name="Unidade Federal", db_column="ufe_sg", max_length=2
)
class SubRegion(BaseModel):
id_subregion = models.IntegerField(primary_key=True,db_column='idsubregion')
region = models.ForeignKey(
"Region", on_delete=models.DO_NOTHING, related_name="subregions"
)
name = models.CharField(verbose_name="Nome", db_column="description", max_length=80)
Обсуждаемые таблицы: region
и subregion
. Но у таблицы subregion
нет данных, относящихся к идентификатору родительского региона, эта информация содержится в таблице regionsubregion
, например:
idregion idsubregion
8 3
8 10
8 26
9 23
9 28
9 41
9 8
10 18
До того, как между многими из них было отношение два, но теперь это только 1 к N (один регион имеет много субрегионов, один субрегион привязан только к одному региону).
Поскольку информация об отношениях находится в совершенно другой таблице, и я запутался в том, что Django ожидает от меня. Я хотел бы избежать создания новых таблиц, и создание новой модели только для этого кажется немного странным. Можно ли как-нибудь сделать эту работу?