Так что этот фрагмент практически объясняет, что я хочу сделать
bloc_results = bloc_results.annotate(num_mates=Count(profilebloc__profile__in=probable_mates)).order_by("-num_mates")
Я знаю, что это невозможно, но это был самый простой способ объяснить ситуацию. переменная probable_mates - это список, заполненный персональными файлами пользовательской таблицы. Поэтому я должен получить этот номер и порядок по нему Это не проблема с использованием фильтра. Дело в том, что использование фильтра извлекает только те объекты, которые соответствуют идентификаторам из этого списка probable_mates, а не все объекты с наибольшим количеством совпадений вверху, что мне и нужно получить. Как я могу сделать это с Django ORM без использования необработанного SQL? Спасибо!
РЕДАКТИРОВАТЬ: Я немного поясню, объяснив, что это делает: Есть несколько клубов, которые будут добавлены в это веб-приложение, и мне нужно сортировать по двум различным параметрам. Один из них по количеству членов каждого клуба, что довольно просто. Второй - «Клубными друзьями», так что все клубы упорядочены по количеству общих друзей, которых они имеют с зарегистрированным пользователем, даже если этот пользователь не вступил в этот клуб. И это не так сложно. Проблема в том, что когда я получаю этот набор запросов и заказываю его, он отображает только те клубы, у которых есть общие друзья по клубу, а не остальные. Мне нужны те, у кого есть друзья по клубу наверху, заказанные по количеству общих друзей по клубу, а остальные внизу, даже если у них нет общих друзей по клубу.