【发布时间】:2020-07-27 22:21:45
【问题描述】:
我有三个 Django 模型:
class Review(models.Model):
rating = models.FloatField()
reviewer = models.ForeignKey('Reviewer')
movie = models.ForeignKey('Movie')
class Movie(models.Model):
release_date = models.DateTimeField(auto_now_add=True)
class Reviewer(models.Model):
...
我想编写一个查询,为每个审阅者返回以下内容:
- 审阅者的 ID
- 他们对最近上映的 5 部电影的平均评分
- 他们对最近上映的 10 部电影的平均评分
- 他们评分为 3 分(满分 5 分)或以下的最新电影的上映日期
结果将被格式化:
<Queryset [{'id': 1, 'average_5': 4.7, 'average_10': 4.3, 'most_recent_bad_review': '2018-07-27'}, ...]>
我熟悉使用.annotate(Avg(...)),但我不知道如何编写一个仅对潜在值的子集进行平均的查询。同样,我不知道如何为最近的
【问题讨论】:
标签: python django django-queryset