Django:queryset多个条件或聚集到新obj中

2024-06-02 06:51:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要为所有包含特定User的所有Comments获取所有Comment。也就是说,用户所属的所有项目的所有注释。在

一个用户可以属于多个项目,每个项目都有许多注释。在

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

我在想的是:

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

…似乎不起作用。在

有什么线索吗?在


Tags: 项目用户in模板forreturn排序comment
1条回答
网友
1楼 · 发布于 2024-06-02 06:51:32

我想这样可以做到:

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

如果注释模型有一个指向project的外键,而project有一个指向user的外键。这将涉及数据库中的一个sqljoin语句。最好在数据库上执行此操作,因为这样效率要高得多。数据库的设计正是为了做到这一点。在

相关问题 更多 >