Django __in小写

时间:2010-10-13 12:28:17

标签: django tags django-orm django-database django-taggit

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

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

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

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

django orm中是否有可能做类似的事情:

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

表现得像“icontains”?

1 个答案:

答案 0 :(得分:2)

没有简单的方法可以做到这一点。我不是百分百肯定,你可以尝试这样的问题。

from django.models import Q

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

Media.objects.filter(q)