Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django:查询设置多个条件或聚集到新对象中_Python_Django_Object_Django Queryset - Fatal编程技术网

Python Django:查询设置多个条件或聚集到新对象中

Python Django:查询设置多个条件或聚集到新对象中,python,django,object,django-queryset,Python,Django,Object,Django Queryset,我需要为包含特定用户的所有项目s获取所有注释s。也就是说,用户所属的所有项目的所有注释 一个用户可以属于多个项目,每个项目都有许多注释 这应该怎么做才对呢?到目前为止,我已经通过创建嵌套for循环在模板中解决了这个问题,但这并不好,因为我需要对结果进行排序 我的想法是: projects = user.projects comments = Comment for p in projects: for c in p.comments: comments.append(c)

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

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

这应该怎么做才对呢?到目前为止,我已经通过创建嵌套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)

如果注释模型对项目有外键,而对用户有外键。这将涉及数据库中的SQL join语句。最好在数据库上执行此操作,因为它的效率要高得多。数据库的设计正是为了做到这一点。

我认为这可以做到:

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

如果注释模型对项目有外键,而对用户有外键。这将涉及数据库中的SQL join语句。最好在数据库上执行此操作,因为它的效率要高得多。数据库正是为此而设计的。

您可能希望发布您的模型结构,至少是相关字段。您可能应该按照Joe的建议使用过滤器。这不是在django中查询模型的正确方法。您可能希望发布模型结构,至少是相关字段。您可能应该按照Joe的建议使用过滤器。这不是django中查询模型的正确方法。是的,我有一个称为“用户”的多个关系。是的,我有一个称为“用户”的多个关系。