나는 다음과 같이 tree_id 필드를 대체하려면 "tree_id"MPTT 재정의하는 방법
class Thing(MPTTModel):
thing_id = models.AutoField(primary_key=True)
...
class MPTTMeta:
tree_id = ?
나는 thing_id와 tree_id 시작하고자하는 "것"첫째 부모를 만드는 동안 객체가 처음 저장 될 때 할당됩니다.
다음으로 나중에 생성 된 "Thing"개체에 대해 이전에 만든 첫 번째 부모의 thing_id를 전달하고 싶습니다.
즉 트리의 모든 노드는 첫 번째 조상의 objectId (thing_id)로 tree_id를 갖습니다.
가능합니까?
"Thing"개체를 만드는 동안 값을 전달하는 방법은 무엇입니까?
편집 : 그래서 그것은 내 요구에 대한 솔루션을 보인다
단지입니다 : Thing.objects.get (PK = thing_id) .get_descendants는()
내가 원하는 건 내 "물건"객체의 하위 집합을 선택하는 것입니다. 문서에서 Genre.objects.all()의 사용법을 보았고 역 트리의 첫 번째 조상과 관련된 모든 "Things"가 tree_id로 첫 번째 조상 객체 ID를 가지면 쉽게 선택할 수 있다고 생각했습니다. 다음과 같이 : list = Thing.objects.filter (thing_type = 2, tree_id = thing_id) – bentzy
그래서 .. 당신은 노드의 자손을 얻으려고합니까? Thing.objects.get (pk = 1) .get_descendants()를 사용하면됩니다. – craigds