2012-01-27 2 views
0

Я запрашиваю db и пытаюсь найти счетчик связанного набора с именем «item».Django Query Get Related Set Count

user_lists = List.objects.filter(user=user).select_related('city','city__country') 

, что поднимает предметы, которые я хочу, но добавить количество взаимосвязанного набора, я добавляю Аннотировать:

user_lists = List.objects.filter(user=user).select_related('city','city__country').annotate(item_count=Count('item')) 

Однако это возвращает пустой запрос из БД. Любые идеи почему? Я не получаю никаких ошибок. Просто пустой набор запросов.

ответ

0

Не настоящий ответ, просто идея о том, как вы можете исследовать: проверьте фактический запрос, который выполняется через print str(some_queryset.query). Затем вы можете попробовать выполнить запрос в manage.py dbshell и проверить результаты.

Также может быть полезно разместить ваши модели и двигатель db, так как это может быть связано.

0

может быть, вы можете использовать счетчик() метод для подсчета элементов в QuerySet: count()

user_lists_count = List.objects.filter(user=user).select_related('city','city__country').count() 

это работает?

надеюсь, что это то, чего вы хотите.

0

Просто осознал, что это проблема с переменной item_count. Когда я использовал total_items, он работал нормально.