如果我有一个模型书定义为:
class Book(models.Model):
name = models.CharField(max_length=300)
pages = models.IntegerField()
price = models.DecimalField(max_digits=10, decimal_places=2)
rating = models.FloatField()
pubdate = models.DateField()
我运行查询:
Book.objects.values('rating').annotate(books_per_rating=Count('id')).aggregate(Max('books_per_rating'))
我得到一个DatabaseError。
根据这个https://docs.djangoproject.com/en/1.5/topics/db/aggregation/#aggregating-annotations,Django 支持聚合注释。但是在链接本身给出的示例中,他们对 QuerySet 进行注释,后者又返回一个QuerySet(而不是ValuesQuerySet),因此聚合方法成功运行。但在我的示例中,聚合ValuesQuerySet会引发DatabaseError。
这是Django中的错误吗?因为如果 Django 不支持对ValuesQuerySet的聚合,那么它应该在 Django 级别(而不是DatabaseError)引发异常。
更新: