Сортировать набор запросов по универсальному внешнему ключу (django)? - PullRequest
4 голосов
/ 29 мая 2010

Я использую инфраструктуру комментариев Django, которая использует общие внешние ключи.

Вопрос: Как отсортировать набор запросов для данной модели по количеству комментариев, используя общий поиск по внешнему ключу?

Чтение django документов по теме говорит, что нужно их вычислить , а не с использованием API агрегации:

API агрегирования базы данных Django не работает с GenericRelation. [...] На данный момент, если вам нужны агрегаты для родовых отношений, вам нужно будет рассчитать их без использования API агрегации.

Единственный способ, который я могу придумать, - это выполнить итерацию по моему набору запросов, сгенерировать список с content_type и object_id для каждого элемента, а затем запустить второй набор запросов в модели комментариев, фильтруя это список content_type и object_id ... сортирует объекты по количеству, затем заново создает новый набор запросов в этом порядке, вытягивая content_object для каждого комментария ...

Это кажется неправильным, и я даже не знаю, как это сделать.

Идеи? Кто-то должен был сделать это раньше.

Я нашел это сообщение в сети, но для этого требуется рукописный SQL - это действительно необходимо?

1 Ответ

2 голосов
/ 29 мая 2010

То, как вы нашли в сообщении в блоге ссылку на ваш вопрос, - это то, как я это сделаю (и, действительно, в значительной степени так, как я это сделал в одном из моих собственных проектов ранее на этой неделе)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...