我正在使用django-mptt制作一个线程论坛应用。一切都已启动并运行,但我无法构建一个特定的查询集。
我想检索以下帖子:
1)是根节点
2)由current_user发布或有current_user发布的后代。
到目前为止我所拥有的是:
Post.objects.filter(Q(user = current_user) | Q( )).exclude(parent__gt = 0)
在我的第二个问题中,我需要一些东西告诉他们,current_user已经发布了一个后代。任何人都知道它是否可能?
答案 0 :(得分:2)
我认为你不能在一个查询中做到这一点。以下是两种方法:
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。然后它获取每个线程的根节点。