0

我正在使用 django-mptt 制作一个线程论坛应用程序。一切都已启动并正在运行,但我无法构建一个特定的查询集。

我想检索以下帖子:

  1. 是根节点
  2. 由 current_user 发布有 current_user 发布的后代。

我到目前为止是这样的:

Post.objects.filter(Q(user = current_user) | Q(  )).exclude(parent__gt = 0)

在我的第二个 QI 中,需要一些东西来判断 current_user 是否发布了它的后代之一。有谁知道这是否可能?

4

1 回答 1

3

我不认为你可以在一个查询中做到这一点。以下是如何做到这一点:

thread_ids = Post.objects.filter(user=current_user).values_list('tree_id', flat=True)
posts = Post.objects.filter(tree_id__in=thread_ids, level=0)

这将获取用户发布的每个线程的 MPTT 树 id。然后它获取每个线程的根节点。

于 2009-09-11T13:09:43.523 回答