Storing hierarchical (parent/child) data in Python/Django: MPTT alternative?

Posted by Parand on Stack Overflow See other posts from Stack Overflow or by Parand
Published on 2010-04-23T15:37:48Z Indexed on 2010/04/23 17:33 UTC
Read the original article Hit count: 450

Filed under:
|
|
|
|

I'm looking for a good way to store and use hierarchical (parent/child) data in Django. I've been using django-mptt, but it seems entirely incompatible with my brain - I end up with non-obvious bugs in non-obvious places, mostly when moving things around in the tree: I end up with inconsistent state, where a node and its parent will disagree on their relationship.

My needs are simple:

  • Given a node:
    • find its root
    • find its ancestors
    • find its descendants
  • With a tree:
    • easily move nodes (ie. change parent)

My trees will be smallish (at most 10k nodes over 20 levels, generally much much smaller, say 10 nodes with 1 or 2 levels).

I have to think there has to be an easier way to do trees in python/django. Are there other approaches that do a better job of maintaining consistency?

© Stack Overflow or respective owner

Related posts about python

Related posts about django