Итак, у меня есть две модели: модель ранжирования и модель UserRanking. Приложение сосредотачивается на людях, которые берут список предметов и оценивают их (например: "Лучшие фильмы 2008 года" ). Модель ранжирования - это совокупный ранжированный список, который рассчитывается из всех разных пользовательских учетных записей, созданных людьми для этого списка. Таким образом, для каждого рейтинга есть множество разных UserRankings, ровно один для каждого пользователя, который дал свое мнение, отправив свою ранжированную версию списка. Модель UserRanking имеет поле ForeignKey с именем "рейтинг", которое указывает на модель ранжирования.
В любом случае, я пытаюсь собрать популярные рейтинги. Мой первый шаг - получить рейтинг с большинством UserRankings, связанных с ними, используя эту строку кода:
popular = Ranking.objects.all().annotate(num_user_rankings=Count('userranking')).order_by('num_user_rankings')[:50]
Однако Django дает мне NameError и говорит: "Глобальное имя" Count "не определено". Он не жалуется на аннотацию (которая доступна только в версии Django Development), так что означает, что Django Development работает правильно? "Граф" четко описан в документах Django как одна из нескольких функций Aggregate, которые могут использоваться как arg для аннотации. Это не имеет никакого смысла.
На самом деле, я только что протестировал его, и мне удалось отобразить мою страницу, используя аннотацию без параметров, и это не дало мне никаких ошибок (очевидно, я также удалил order_by). Так что аннотат действительно работает!