Django queryset с annotate, order_by и distinct вызывает ошибку при вызове values
Может ли кто-нибудь объяснить мне, почему следующий вызов работает нормально
Order.objects.filter(part_description__icontains=search_query)
            .annotate(part_description_lower=Lower('part_description'))
            .order_by("part_description_lower", '-pk')
            .distinct("part_description_lower")
 Но следующее вызывает ошибку Cannot resolve keyword 'part_description_lower' into field
Order.objects.filter(part_description__icontains=search_query)
            .annotate(part_description_lower=Lower('part_description'))
            .order_by("part_description_lower", '-pk')
            .distinct("part_description_lower")
            .values('pk')
Заранее спасибо.
 когда вы добавляете .values('pk'), это изменяет структуру кверисета таким образом, что
- .values()генерирует кверисет словарей, содержащих только указанные поля (- pkв данном случае).
-  аннотированные поля (например, part_description_lower) больше не являются частью выходного кверисета.
- при вызове distinct(«part_description_lower») django не может разрешитьpart_description_lower, потому что оно больше не доступно в контексте queryset.