Проблема с 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