Как получить все объекты со своими детьми, используя django orm? - PullRequest
0 голосов
/ 05 мая 2010

Я получил очень простую иерархическую структуру: каждый объект может иметь 0 или 1 родителя. Нет ограничений на количество детей, которое может иметь каждый объект.

Итак, в моем приложении я получил такую ​​модель:

class O(Model):
  name = CharField(max_length = 20)
  parent = ForeignKey('O', related_name = 'children')

Теперь я хотел бы иметь возможность извлекать все объекты, у которых есть определенный Object1 в их родительском дереве (как в их родителях или родителях их родителей и т. Д.)

Должен ли я использовать mptt или есть более простой подход?

Ответы [ 2 ]

0 голосов
/ 05 мая 2010

если вы наберете mptt , я предлагаю сначала прочитать документы . Это хорошая реализация, и в этом случае она будет самой легкой.

То, что вы ищете, в mptt называется get_descendants ().

Будьте осторожны и используйте svn trunk, так как последний выпуск не совместим с Django 1.0 и выше. Надеюсь, это поможет.

0 голосов
/ 05 мая 2010

Да, я предлагаю использовать mppt . Мне это нравится.

Существует множество полезных функций, таких как instance.get_ancestors () или instance.get_children (). И много хороших и полезных шаблонов тегов.

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