Django: queryset多个条件或者集合成一个新的对象



我需要获得包括特定User的所有Project的所有Comment s。也就是说,用户所属的所有项目的所有注释。

一个用户可以属于多个Project,每个Project有多个Comments。

这应该怎么做呢?到目前为止,我已经通过创建一个嵌套的for循环在模板中解决了这个问题,但这并不好,因为我需要对结果进行排序。

我想这样写:

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

…似乎行不通。

什么线索吗?

我想这样可以:

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

如果Comment模型对project有一个外键,而project对user有一个外键。这将涉及数据库中的SQL连接语句。最好在数据库上执行此操作,因为它要高效得多。数据库就是这样设计的

相关内容

  • 没有找到相关文章

最新更新