Вопрос моделирования Python / Django - PullRequest
1 голос
/ 13 апреля 2009

Каков наилучший способ иметь множество дочерних записей, указывающих на одну родительскую запись в той же модели / таблице в Django?

Правильна ли эта реализация?:

class TABLE(models.Model):
    id = models.AutoField(primary_key=True)
    parent = models.ForeignKey("TABLE", unique=False)

Ответы [ 2 ]

10 голосов
/ 13 апреля 2009

Django имеет специальный синтаксис для ForeignKey для самостоятельных объединений:

class TABLE(models.Model):
    id = models.AutoField(primary_key=True)
    parent = models.ForeignKey('self')

Источник (второй абзац)

2 голосов
/ 13 апреля 2009

Две вещи:

Во-первых, вам нужно разрешить возможность нулевого значения для parent, в противном случае ваше дерево TABLE не может иметь корня.

Во-вторых, вам нужно беспокоиться о возможности "я - мой дедушка". Для оживленной дискуссии см. здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...