Получить объекты, для которых существует тип внешнего ключа - PullRequest
5 голосов
/ 20 марта 2012

Я использую django-taggit для создания приложения, в котором хранятся не только задачи, но и информационные элементы. Могут быть помечены как элементы дел, так и информационные элементы.

Когда я извлекаю список тегов для дел, я запускаю следующий запрос:

action_tags = Tag.objects.order_by('name').filter(action__complete=False).annotate(action_count=Count('action'))

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

Для информационных элементов поле «завершено» отсутствует; информационные элементы просто "есть". Поэтому я хочу написать запрос, который извлекает все теги, для которых есть хотя бы один информационный элемент. Как это может быть написано?

1 Ответ

6 голосов
/ 21 марта 2012

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

tags = Tag.objects.filter(
    info_item__isnull=False
).order_by(
    'name'
).annotate(
    info_item_count=Count('info_item')
)
...