Django注解国外模型的Avg

Django annotate Avg of foreign model

两个模型,文章和评论,关系是一对多(一篇文章有​​很多评论)。有些文章没有任何评论。

我想按评论评分排序文章,因此我使用 AVG 注释:

ArticleQueryset.annotate(rating=models.Avg('reviews__rating')).order_by('-rating')

问题在于,没有评论的文章评分值为 False,并且以某种方式出现在最高评分之前。结果是第一个结果没有任何评分,然后显示评分最高的文章。

order_by()方法中使用nulls_last=True作为

ArticleQueryset.annotate(
    rating=models.Avg('reviews__rating')
).order_by(<b>models.F('rating').desc(nulls_last=True)</b>)