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

我想检索以下帖子:

1)是根节点

2)由current_user发布有current_user发布的后代。

到目前为止我所拥有的是:

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

在我的第二个问题中,我需要一些东西告诉他们,current_user已经发布了一个后代。任何人都知道它是否可能?

有帮助吗?

解决方案

我认为你不能在一个查询中做到这一点。以下是两种方法:

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。然后它获取每个线程的根节点。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top