ich das tree_id Feld außer Kraft setzen möchten, wie folgend:MPTT - Wie außer Kraft setzen „tree_id“
Gegeben:
class Thing(MPTTModel):
thing_id = models.AutoField(primary_key=True)
...
class MPTTMeta:
tree_id = ?
Während das „Ding“ erste Elternteil zu schaffen Ich möchte mit dem thing_id einzuleiten tree_id zugewiesen, wenn das Objekt zum ersten Mal gespeichert wird.
Als nächstes möchte ich für "Thing" -Objekte, die später erstellt werden, die thing_id des ersten zuvor erstellten Parent übergeben.
, d. H. Alle Knoten in Baum haben als tree_id die Objekt-ID (thing_id) des ersten Vorfahren.
Ist es möglich?
Wie muss ich den Wert beim Erstellen der "Thing" -Objekte übergeben?
Edit:
So ist es die Lösung für meine Bedürfnisse scheint lediglich: Thing.objects.get (pk = thing_id) .get_descendants()
Alles, was ich will, ist eine Teilmenge meiner "Dinge" Objekte auszuwählen. Ich sah in der Dokumentation die Verwendung von Genre.objects.all() und dachte, dass, wenn alle meine "Dinge", die mit dem ersten Vorfahren in der umgekehrten Struktur verwandt sind, als tree_id die erste Vorgänger-Objekt-ID hat, so wird es einfach sein, sie auszuwählen wie folgt: list = Thing.objects.filter (thing_type = 2, tree_id = sache_id) – bentzy
Also ... willst du die Nachkommen eines Knotens bekommen? Sie können einfach Thing.objects.get (pk = 1) .get_descendants() verwenden – craigds