Je cherche un bon moyen de stocker et d'utiliser des données hiérarchiques (parent/enfant) dans Django. J'ai utilisé django-mptt, mais cela semble totalement incompatible avec mon cerveau - je me retrouve avec des bugs non évidents dans des endroits non évidents, surtout quand je déplace des choses dans l'arbre: je me retrouve avec un état incohérent, où un nœud et son parent sera en désaccord sur leur relation.Stocker des données hiérarchiques (parent/enfant) dans Python/Django: alternative MPTT?
Mes besoins sont simples:
- Étant donné un nœud:
- trouver sa racine
- trouver ses ancêtres
- trouver ses descendants
- Avec un arbre:
- déplacer facilement les nœuds (ie. Changement de parent)
Mes arbres seront assez petites (au plus 20 noeuds 10k sur les niveaux, généralement beaucoup plus petits, disons 10 nœuds avec 1 ou 2 niveaux).
Je dois penser qu'il doit y avoir un moyen plus simple de faire des arbres dans python/django. Existe-t-il d'autres approches qui permettent de mieux maintenir la cohérence?
django-MPTT est grand - lu quelques-unes de la réponse de Daniel Roseman ici (http://stackoverflow.com/questions/2324727/re-ordering-child-nodes- in-django-mptt/2326625 # 2326625) pour de l'aide avec le déplacement des nœuds. N'abandonne pas! –
Merci, cela ressemble à la cause probable de mes problèmes, mais je ne me fais pas confiance pour obtenir ce droit à chaque fois - semble trop facile à manquer. Je vais faire écho à votre commentaire: "Encore un peu nerveux à propos de MPTT et la possibilité de l'arbre entrer dans un mauvais état" :-) Je suppose que vous avez fini heureux? – Parand