Как бы вы отсортировали дерево mptt django?

Представьте, что у меня есть mptt-дерево объектов и их популяция, например:

Животное, 60

  • трубкозуб, 30
  • бобкэт, 20
  • бурундук, 10

Овощная, 6

  • яблоко, 1
  • свекла, 2
  • цветная капуста, 3

Минерал 0

Как бы вы отсортировали приведенное выше по численности населения на каждом подуровне? Я хочу добраться до:

Животное, 60

  • трубкозуб, 30
  • бобкэт, 20
  • бурундук, 10

Овощная, 6

  • цветная капуста, 3
  • свекла, 2
  • яблоко, 1

Минерал 0

Я строю mptt в django.


person Community    schedule 15.05.2009    source источник
comment
Ссылка на рассматриваемую тему была бы полезна code.google.com/p/django-mptt   -  person Andriy Drozdyuk    schedule 26.05.2009


Ответы (3)


Попробуйте добавить его в метакласс models.py. .

Или на дочернем QuerySet

person Andre Bossard    schedule 17.05.2009

Должен ли order_by просто работать?

YourModel.tree.filter(your=stuff).order_by('order')
person msmart    schedule 17.05.2009
comment
Поле order отсутствует. - person Flimm; 25.09.2018

Я только что решил похожую проблему. Вы можете использовать order_by, но не просто по полю, по которому вы хотите отсортировать:

MyModel.tree.all().order_by('tree_id', 'level', 'your_sort_field')
person affan    schedule 30.10.2013
comment
Не будет работать, если уровень глубины станет 1 ‹ - person Bialomazur; 16.02.2021