Вопрос

я использую Джанго-Таггит, который обрабатывает прикрепление тегов к произвольным типам контента. Я импортировал большой список тегов, который содержит много прописных слов, а также строчные слова.

Теперь я пытаюсь получить объекты другого класса, содержащий набор тегов, но я хочу нечувствительно сравнить. Когда я делаю это:

Media.objects.filter(tags__name__in=['tag1', 'tag2'])

Объекты, содержащие, например, тег «TAG1» не найдены, только те, с «TAG1» или «TAG2».

Есть ли в Django Orm возможность сделать что -то вроде:

Media.objects.filter(tags__name__iin=['tag1', 'tag2'])

Это действует как «заканчивания»?

Это было полезно?

Решение

Нет простого способа сделать это. Я не уверен на 100%, вы можете попробовать что -то подобное для вашей проблемы.

from django.models import Q

q = Q()
for tag in tags.split():
    q |= Q(tags__name__iexact=tag)

Media.objects.filter(q)
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top