Проблема с django queryset и distinct/order с аннотированными полями

Может ли кто-нибудь помочь с этой проблемой на django queryset distinct/order с аннотированными полями?

ЭТО РАБОТАЕТ Он прекрасно возвращается и вызывает мой сериализатор после этого, без каких-либо проблем.

def get_queryset(self) -> list:

    distinct_by = ('distance_to_first_point', 'id')
    pnt = create_point(float(lat), float(lng))
    queryset = queryset.annotate(distance_to_first_point=Distance("first_point",pnt)).order_by("distance_to_first_point")

    return queryset.order_by(*distinct_by).distinct(*distinct_by)

ЭТО НЕ РАБОТАЕТ Если я пытаюсь получить доступ к любому полю в наборе запросов, то выдается следующая ошибка: Cannot resolve keyword 'distance_to_first_point' into field. Я предполагаю, что ошибка связана с аннотированным полем, но почему? До distinct и order я могу получить доступ к queryset[0].distance_to_first_point, например, и это также работает...

def get_queryset(self) -> list:

    distinct_by = ('distance_to_first_point', 'id')
    pnt = create_point(float(lat), float(lng))
    queryset = queryset.annotate(distance_to_first_point=Distance("first_point",pnt)).order_by("distance_to_first_point")

    queryset = queryset.order_by(*distinct_by).distinct(*distinct_by)

    queryset_ids = queryset.values_list('id', flat=True)

    return queryset

Вернуться на верх