Mau*_*MSL 10 python django django-models
是否可以聚合查询集的注释?
楷模:
class Article(models.Model):
title = models.CharField(max_length=255)
body = models.TextField()
class State(models.Model):
article = Models.ForeignKey(Article)
date = DateField()
views = IntegerField()
downloads = IntegerField()
Run Code Online (Sandbox Code Playgroud)
我正在尝试执行以下操作:
articles = metrics_models.Article.objects.filter(
state__date__month=month,
state__date__year=year
).annotate(
views=Min('state__views'),
downloads=Min('state__downloads')
).aggregate(
views=Sum('views'),
downloads=Sum('downloads')
)
Run Code Online (Sandbox Code Playgroud)
错误:
Exception Type: DatabaseError
Exception Value:
column "downloads" does not exist
LINE 1: SELECT SUM(downloads), SUM(views) FROM (SELECT "metrics_arti...
Run Code Online (Sandbox Code Playgroud)
运行此程序时,我收到 DatabaseError 因为 django 尝试在“视图”和“下载”数据库列上进行聚合,而不是在注释上进行聚合。
有没有其他方法可以在 QuerySet 注释上进行这种聚合?
我认为 medmunds 是对的,您不能为注释和聚合别名重复使用相同的名称。这就是你想要做的,我想:
articles = metrics_models.Article.objects.filter(
state__date__month=month,
state__date__year=year
).annotate(
min_views=Min('state__views'),
min_downloads=Min('state__downloads')
).aggregate(
sum_min_views=Sum('min_views'),
sum_min_downloads=Sum('min_downloads')
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6301 次 |
| 最近记录: |