Как установить связь между строками в одной таблице в Django

Сначала покажу пример:

Таблица1:
id | sub_is | name
---|--------|-----
1 | null | группа 1
2 | 1 | группа 2
3 | 1 | группа 3
4 | 2 | группа 4
5 | 2 | группа 5
6 | 3 | группа 6
7 | 1 | группа 7
8 | 4 | группа 8

Это будет выглядеть как небольшое строение:

группа 1
|- группа 2
| | |- группа 4
| | | |- группа 8
| |- группа 5
|- группа 3
| |- группа 6
|- группа 7

Мой вопрос заключается в следующем:
Как я могу сделать это в Django?
Как, если это возможно, я могу сделать связь между двумя строками в одной таблице?

Спасибо за любые предложения и любую помощь.

Возможно, это поможет вам

class Foo(models.Model):
  bar = models.ManyToManyField(Child, related_name="bar")
  baz = models.ManyToManyField(Child, related_name="baz")

Я пробовал что-то вроде этого, но это не работает:

class Department(models.Model):
sub_id = models.ForeignKey(Department, on_delete=models.CASCADE)
name = models.CharField(max_length=60, unique=False)

def __str__(self):
    return self.name

Таким образом, я не могу вызвать поле с именем класса, в котором я нахожусь.

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