如何在 django 中构建查询集来检索用户发布的线程?
我正在使用 django-mptt 制作一个线程论坛应用程序。一切都已启动并正在运行,但我在构建一个特定的查询集时遇到了麻烦。
我想检索以下帖子:
- 是由 current_user 发布的根节点
- 或 具有由 current_user 发布的后代。
到目前为止,我所得到的是:
Post.objects.filter(Q(user = current_user) | Q( )).exclude(parent__gt = 0)
在我的第二个 QI 中,需要一些东西来判断 current_user 是否已发布其后代之一。有人知道这是否可能吗?
I'm making a threaded forum app using django-mptt. Everything is up and running, but I have trouble building one specific queryset.
I want to retrieve posts which:
- are root nodes
- are posted by current_user or have a descendant posted by current_user.
What I have so far is this:
Post.objects.filter(Q(user = current_user) | Q( )).exclude(parent__gt = 0)
in my second Q I need something to tell whether the current_user has posted one of its descendants. Anyone know if it's even possible?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我认为您无法在一次查询中完成此操作。以下是分两步执行的方法:
获取用户发布的每个线程的 MPTT 树 ID。然后获取每个线程的根节点。
I don't think you can do this in one query. Here's how to do it in two:
This gets the MPTT tree id of every thread which the user has posted in. Then it gets the root node of each of these threads.