我需要获得包括特定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连接语句。最好在数据库上执行此操作,因为它要高效得多。数据库就是这样设计的