Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/308.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.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:NotImplementedError:aggregate()+;未实现不同的(字段)_Python_Django_Aggregate_Django Queryset_Distinct - Fatal编程技术网

Python Django:NotImplementedError:aggregate()+;未实现不同的(字段)

Python Django:NotImplementedError:aggregate()+;未实现不同的(字段),python,django,aggregate,django-queryset,distinct,Python,Django,Aggregate,Django Queryset,Distinct,我有一张叫做评论的桌子。在评论中,一个人可以为一项服务留下多个评论。一篇评论可以有一个总分。我试图得到不同评论的总分平均值。以下是我所拥有的: reviews = Review.objects.distinct('pairing').aggregate(Avg('total_score')); 我不断地发现这个错误: NotImplementedError: aggregate() + distinct(fields) not implemented. 有人能帮我吗?我是Django的新手,

我有一张叫做评论的桌子。在评论中,一个人可以为一项服务留下多个评论。一篇评论可以有一个总分。我试图得到不同评论的总分平均值。以下是我所拥有的:

reviews = Review.objects.distinct('pairing').aggregate(Avg('total_score'));
我不断地发现这个错误:

NotImplementedError: aggregate() + distinct(fields) not implemented.
有人能帮我吗?我是Django的新手,不知道为什么我会得到这个。谢谢

您可以使用,然后创建一个
Avg

from django.db.models import Avg

reviews = Review.objects.values('pairing').aggregate(
    avg_total_score=Avg('total_score')
).order_by('pairing')

配对
外键
?你能分享相关的模型吗?这会为queryset带来唯一的配对吗?例如,同一对可能有两个等级,但我正试图用一个唯一的配对来获得第一个等级rating@TotiCuervo:如果相同的
配对发生多次,则在结果中只出现一次,而
avg_total_score
将是该
配对的所有记录的平均
total_score
。谢谢您的回答!然而,我要寻找的是整个查询的平均值。使用状态的目的是只获得特定配对的第一个评级。例如,如果我有一个查询集{'pairing':1,'total_score':1.3},{'pairing':1,'total_score':2.7},{'pairing':2,'total_score':1.8},那么它将只取{'pairing':1,'total_score':2.7},{'pairing':2,'total_score':1.8},@TotiCuervo:如果
配对
是一个
外键
,那么在它所指向的模型上执行
注释(…)
就更为优雅了,因为从那时起(假设模型存在
配对
对象)有一个额外的属性。@ ToTiCuoVo:但是问题是没有“第一”这样的东西。你应该考虑表“无序”。只有阿德事实上的排序,但是数据库可以按照你想要的任何顺序返回记录,除非你有一个排序条件。
<QuerySet [
    {'pairing': 13, 'avg_total_score': 1.3},
    {'pairing': 14, 'avg_total_score': 2.7},
    {'pairing': 21, 'avg_total_score': 1.8},
    {'pairing': 25, 'avg_total_score': 3.9},
]>