Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/317.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项目的QuerySet数量_Python_Sql_Django_Django Queryset - Fatal编程技术网

Python 减少django项目的QuerySet数量

Python 减少django项目的QuerySet数量,python,sql,django,django-queryset,Python,Sql,Django,Django Queryset,我正在制定一种实体审查投票制度,每个实体都有一些审查,每个审查都有一些投票(上/下) 对于每个实体,我希望有一个评论列表,用每个评论的赞成票数和反对票数进行注释 到目前为止,我的方法是为每次审查运行两个额外的查询: count_up = Vote.objects.filter(vote_review__id = X, vote_value = True) count_down = Vote.objects.filter(vote_review__id = X, vote_value = Fals

我正在制定一种实体审查投票制度,每个实体都有一些审查,每个审查都有一些投票(上/下)

对于每个实体,我希望有一个评论列表,用每个评论的赞成票数和反对票数进行注释

到目前为止,我的方法是为每次审查运行两个额外的查询:

count_up = Vote.objects.filter(vote_review__id = X, vote_value = True)
count_down = Vote.objects.filter(vote_review__id = X, vote_value = False)
这将返回正确的结果。然而,查询的数量似乎相当低效

我可以知道是否有更好的方法来构造查询吗?或者如何更改模式以更好地支持此类操作


谢谢

如果您只需要计数,那么您应该使用

返回一个整数,表示数据库中与查询集匹配的对象数。count()方法从不引发异常


这将修改查询以仅返回查询创建的对象数,并阻止其花费时间返回模型。

您需要整个投票对象还是只需要计数?您可以显示视图的其余部分吗?这些查询是否在所有审查的循环中完成?如果是这样的话,您可能可以使用注释。@Daniel基本上我想显示特定实体的所有评论,每个评论都包含向上计数和向下计数的信息。类似的例子是这样的(我可以自由地为这部分编写代码,但我没有,因为我对这部分不太确定)
count_up = Vote.objects.filter(vote_review__id = X, vote_value = True)
count_down = Vote.objects.filter(vote_review__id = X, vote_value = False)
count_up = Vote.objects.filter(vote_review__id = X, vote_value = True).Count()
count_down = Vote.objects.filter(vote_review__id = X, vote_value = False).Count()