Как отфильтровать теги с помощью django-tagging?
Я использую django-tagging для приложения django и пытаюсь отфильтровать определенные теги для простого поиска по тегам.
переменная 'tag' является текстом некоторого тега, который я ищу. "Виджет" - это модель, связанная с тегами.
tags = Tag.objects.usage_for_model(Widget, counts=True, filters=dict(tags__icontains=tag))
Код выше вроде работает. Он возвращает список тегов, которые содержат тег, но также возвращает другие теги, связанные с виджетами, которые используют этот тег.
Например, у меня есть виджет: A, а у A есть теги: django, python, mysql. Если я сделаю простой поиск для "Django":
tags = Tag.objects.usage_for_model(Widget, counts=True, filters=dict(tags__icontains='django'))
теги вернут этот список: [(Tag: django), (Tag: python), (Tag: mysql)]
Я только хочу, чтобы он вернулся: [(Tag: django)]
Как мне это сделать?
1 ответ
Лучше поздно, чем никогда?
djangoTag = Tag.objects.get(name='django')
djangoWidgets = TaggedItem.objects.get_union_by_model(Widget, djangoTag)