Django комментирует вывод запроса Count - PullRequest
0 голосов
/ 26 октября 2011

У меня путаница в результате этих запросов:

>>> [f.count for f in Favourite.objects.annotate(count = Count('object_id'))]
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]

, а второй -

>>> [f['count'] for f in Favourite.objects.values('object_id').annotate(count=Count('object_id'))]
[1, 5, 2, 1, 4, 2, 2, 3]

, но согласно django docs первый запрос должен работать нормальнои Favourite объект имеет количество object_id.

Кто-нибудь может объяснить, почему работает второй запрос, но не первый?

Спасибо!

1 Ответ

4 голосов
/ 26 октября 2011

Второй делает group by для object_id. Это ожидаемое поведение. Первый просто подсчитывает object_id для каждой строки в базе данных.

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