Пробовал django-mptt, но после пары дней тестов отказался, при попытке создать из 40к элементов порядка 700 деревьев, период беспроблемной вставки составлял элементов 500, потом начинали вылитать исключения, с включением отложенной перестройки дерева, период увеличился до 1500 элементов. на этом знакомство закончилось. По моим впечатлением вещь удобная, но когда данные редко меняются, и их не особо много.
В итоге ограничился собственными костылями в виде полей root, parent, lvl, и хитрый order. чего более чем хватало для моих нужд(но это меньше чем то что предлагает django-mptt).