我正在使用postgresql
:
articles = Article.objects.filter(articleinreports__report__in=reports_in_time_range).distinct().annotate(
total_views=Case(
When(articleinreports__report=last_report,
then=(F("articleinreports__ios_views") + F("articleinreports__android_views")))
, default=0, output_field=IntegerField()
)
).order_by('-total_views')
为什么distinct()
没有得到应用,而数据库中的每篇唯一文章却得到了两篇而不是一篇?
删除order_by
并不能解决(仍然会导致另一个问题),只能删除注释和order_by
。
当我尝试执行distinct('id')
时,我收到一个错误,提示它必须与order_by
字段匹配,这违反了按我期望的标准进行排序的目的。
为什么会这样,我该如何解决用例?