Django - 使用 values_list 时无法将关键字 'count_number' 解析为字段

Django - Cannot resolve keyword 'count_number' into field when I use values_list

有一个查询:

selected = MyModel.objects.filter(category_id=category_id,status__gte=0) \
               .filter(pub_time__lte=_refresh_datetime,
                       buy_links__status=2) \
               .annotate(like_count=Count('likes'))\
               .order_by('-like_count')

它有效,但是,当我需要获取此查询的 ID 时:

selected_id_list = selected.values_list('id')

提出:

Cannot resolve keyword 'like_count' into field. Choices are: ....

有人知道吗?

ps,

Python版本:2.7.10

Django 版本:1.6.11

尝试values_list('id', 'like_count')。我不太了解Django,但是注释的字段必须出现在 SELECT 表达式中。看起来 values_list('id'),生成的查询变为 SELECT id FROM ...,在这种情况下,SELECT 表达式中缺少 count(likes)

总之,selected_id_list = [r[0] for r in selected.values_list('id', 'like_count')]