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>)
两个模型,文章和评论,关系是一对多(一篇文章有很多评论)。有些文章没有任何评论。
我想按评论评分排序文章,因此我使用 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>)