【发布时间】:2010-06-14 10:03:15
【问题描述】:
如果我对多个表有查询,例如:
d = Relations.objects.filter(follow = request.user).filter(date_follow__lt = last_checked)
r = Reply.objects.filter(reply_to = request.user).filter(date_reply__lt = last_checked)
article = New.objects.filter(created_by = request.user)
vote = Vote.objects.filter(voted = article).filter(date__lt = last_checked)
我想显示所有按日期排序的结果(我的意思是不列出所有回复,然后列出所有投票等)。 不知何故,我想在一个查询集中“加入所有这些结果”。 有可能吗?
【问题讨论】:
-
你能说出你为什么要这样做吗?我们可能会为您提供替代解决方案...
-
因为:1.我有一个通知列表,我想为用户显示所有“新通知”,按照事件发生的顺序(我的意思是先回复,然后投票等)。另外,我想按天订购所有这些通知(而且只有当我有所有这些通知的查询集时才可能)。和 2. 第二个原因 - 我在其他地方有一个搜索功能,在 UserProfile 的“名称字段”中有一个查询集,我想为用户表的“用户名”添加一个 qset,以便它能够搜索两者。非常感谢!
-
我认为,如果您不想像 Sébastien Piquemal 提到的那样更改模型的架构,您只能将所有对象放在一个列表中并对其进行排序,但不能使用查询集。跨度>
-
嗯……这也是个主意。我会先尝试这个,如果它工作正常,我会保留它,并记住超级类的解决方案来解决另一个问题。非常感谢!
标签: django join django-queryset