Я использую инфраструктуру комментариев Django, которая использует общие внешние ключи.
Вопрос: Как отсортировать набор запросов для данной модели по количеству комментариев, используя общий поиск по внешнему ключу?
Чтение django документов по теме говорит, что нужно их вычислить , а не с использованием API агрегации:
API агрегирования базы данных Django не работает с GenericRelation. [...] На данный момент, если вам нужны агрегаты для родовых отношений, вам нужно будет рассчитать их без использования API агрегации.
Единственный способ, который я могу придумать, - это выполнить итерацию по моему набору запросов, сгенерировать список с content_type
и object_id
для каждого элемента, а затем запустить второй набор запросов в модели комментариев, фильтруя это список content_type
и object_id
... сортирует объекты по количеству, затем заново создает новый набор запросов в этом порядке, вытягивая content_object
для каждого комментария ...
Это кажется неправильным, и я даже не знаю, как это сделать.
Идеи? Кто-то должен был сделать это раньше.
Я нашел это сообщение в сети, но для этого требуется рукописный SQL - это действительно необходимо?