Django查询 - 在同一个表上加入

时间:2010-06-16 20:31:45

标签: django join

我有一个迷你博客应用程序和一个'时间表'。在那里,我希望显示来自用户的所有朋友的所有帖子,以及该用户自己的帖子。 为此,我必须在两个查询的结果(同一个表上的查询)之间进行某种“连接”,以便最终结果将是帐户的用户拥有者和他所有朋友的组合。 。 我的查询如下:

blog = New.objects.filter(created_by = following,created_by = request.user)

通过那个','我想做一个'加入' - 我在doc上发现了类似的东西 - 但是这个方法不正确 - 我收到了错误。

这个'加入'怎么办?

1 个答案:

答案 0 :(得分:2)

您可以使用Django Q(查询参数)对象来创建具有逻辑运算符(&|~)的复杂查询。您还可以使用__(双下划线)加入查询参数。

# is this what you want?
blog = New.objects.filter( Q(created_by__followed_by = request.user)
                          |Q(created_by = request.user) )

有关详细信息,请参阅http://docs.djangoproject.com/en/dev/topics/db/queries/#complex-lookups-with-q-objects