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