Django:queryset多个条件或聚集到新对象

时间:2013-03-06 14:40:40

标签: python django object django-queryset

我需要为包含特定Comment的所有Project获取所有User个。含义,是用户所属的所有项目的所有注释。

用户可以属于许多项目,每个项目都有很多评论。

如何做到这一点?到目前为止,我已经通过创建嵌套的for循环在我的模板中解决了它,但这不好,因为我需要对结果进行排序。

我在想:

projects = user.projects
comments = Comment
for p in projects:
    for c in p.comments:
        comments.append(c)
return comments

......似乎没有用。

任何线索?

1 个答案:

答案 0 :(得分:4)

我认为这样做会:

query = Comment.objects.filter(project__user=person)

如果Comment模型具有项目的外键,该外键具有用户的外键。这将涉及数据库中的SQL连接语句。最好在数据库上执行此操作,因为它的效率要高得多。数据库的设计完全是为了做到这一点。