Django-ORM:为什么distinct()无法使用注释?

时间:2018-08-01 10:10:32

标签: django django-orm

我正在使用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字段匹配,这违反了按我期望的标准进行排序的目的。

为什么会这样,我该如何解决用例?

0 个答案:

没有答案