我正在使用 django-taggit, ,它处理标签与任意内容类型的附件。我导入了一个大型标签列表,其中包含许多大写单词以及小写字样。

现在,我试图获取包含一组标签的另一个类的对象,但我想无敏感地比较案例。当我这样做时:

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

找不到包含标签“ tag1”的对象,只有那些具有“ tag1”或“ tag2”的对象。

Django Orm中是否有可能做类似的事情:

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

像“ icontains”一样?

有帮助吗?

解决方案

没有简单的方法可以做到。我不是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