Многоуровневый список в django models связи таблиц

Есть три поля

level_1, level_2, level_3

Каждое последующее, связано с предыдущим. Не могу понять, как выстроить эту связь в моделях.

Для поля level_1 сделал справочник, типа: введите сюда описание изображения

В моделях прописал:

level_1 = models.ForeignKey('DictLevel_1', on_delete=models.PROTECT, null=True, default=2)

Но не могу понять, как увязать level_2 с level_1. Чтобы, в зависимости от того, что выбрано в level_1, выбор в level_2 ограничивался. Сейчас в справочник level_2 я добавил поле id_dict_lvl1-id, которое определяет к какой категории из справочника level_1, принадлежит категория из справочника level_2. введите сюда описание изображения

Но как прописать это в моделях понять не могу.

Саму модель справочника level_2 объявил как:

class DictLevel_2(models.Model):
    id_dict_lvl1 = models.ForeignKey('DictLevel_1', on_delete=models.PROTECT, null=True)
    flow_type = models.CharField(max_length=100, db_index=True, verbose_name='Тип level_2')

В основную модель поле level_2, подключил как:

level_2 = models.ForeignKey('DictLevel_2', on_delete=models.PROTECT, null=False, default=2)

Но оно естественно выводится по id и никакой взаимосвязи с level_2 с level_1 нет.

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