Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/322.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 1.8-生成的QuerySet包含不在值中的列_Python_Django_Django Queryset - Fatal编程技术网

Python django 1.8-生成的QuerySet包含不在值中的列

Python django 1.8-生成的QuerySet包含不在值中的列,python,django,django-queryset,Python,Django,Django Queryset,我正在尝试获取一个查询集,显示平均评论率。 查询看起来非常简单——尽管Django似乎会自动在生成的GROUPBY语句中添加一个额外的字段。有没有办法将其从GROUPBY子句中删除?这是因为在模型的元类中定义了默认的orderby吗 按“身份验证天线”、“名称”、“审阅”、“创建时间”分组 而不仅仅是按“authentification_Antene”“name”分组 还有模特 class Review(models.Model): guest = models.ForeignKey

我正在尝试获取一个查询集,显示平均评论率。 查询看起来非常简单——尽管Django似乎会自动在生成的GROUPBY语句中添加一个额外的字段。有没有办法将其从GROUPBY子句中删除?这是因为在模型的元类中定义了默认的orderby吗

按“身份验证天线”、“名称”、“审阅”、“创建时间”分组 而不仅仅是按“authentification_Antene”“name”分组

还有模特

 class Review(models.Model):
     guest = models.ForeignKey(Guest)
     comment = models.TextField()
     rating = models.IntegerField(null=True)
     created_at = models.DateTimeField()
     imported_at = models.DateTimeField(auto_now=True)
     appartement = models.ForeignKey('staffing.appartement', null=True)

     class Meta:
         ordering = ['-created_at']
编辑-当从模型中删除在订购时创建的_时,我确认生成的语句是正确的

编辑2-我通过在order_by子句中添加我的值来删除默认筛选来解决此问题

AirbnbReview.objects.select_related('appartement__antenne').values('appartement__antenne__name').order_by('appartement__antenne__name').annotate(average_rating=Avg('rating'))

谢谢

是的,默认顺序会影响聚合()。我认为,在这种情况下,需要明确的顺序。请尝试:
Review.objects.select\u related('apparement\u antene').values('apparement\u antene\u name').order\u by('created\u at').annotate(average\u rating=Avg('rating')).query
不起作用的是在order\u by子句中添加apparement\u antene\u\u\u\u名称做了手脚!非常感谢。
AirbnbReview.objects.select_related('appartement__antenne').values('appartement__antenne__name').order_by('appartement__antenne__name').annotate(average_rating=Avg('rating'))