3

我正在使用django-taggit,它处理将标签附加到任意内容类型。我导入了一个大标签列表,其中包含许多大写单词和小写单词。

现在,我试图获取包含一组标签的另一个类的对象,但我想不区分大小写进行比较。当我这样做时:

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

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

django orm 中是否有可能执行以下操作:

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

这就像“图标”?

4

1 回答 1

3

没有简单的方法可以做到这一点。我不是 100% 确定,你可以尝试这样的事情来解决你的问题。

from django.models import Q

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

Media.objects.filter(q)
于 2010-10-13T12:59:24.697 回答