Как установить связь между строками в одной таблице в 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
Таким образом, я не могу вызвать поле с именем класса, в котором я нахожусь.