0
檢查不敏感的我的網站有大量線程的對象Django的情況下,對列表
>>> Thread.objects.filter(board__name='Fitness')
[<Thread: lorem>, <Thread: lorems>, <Thread: LOREM>]
而且每個用戶都有一個過濾器列表,(PostgreSQL的陣列字段)
>>> filters
['lorem', 'adipisci', 'amet', 'dolor']
我想是能夠排除用戶過濾器列表中的線程。到目前爲止,這是我已經能夠做到這一點的唯一辦法:我想知道
>>> Thread.objects.filter(board__name='Fitness').exclude(reduce(operator.or_, (Q(title__icontains=x) for x in filters)))
[]
,如果有一種方法可以做到不區分大小寫的檢查,在Django與在運營商。由於下面不起作用
>>> Thread.objects.filter(board__name='Fitness').exclude(title__in=filters)
[<Thread: lorems>, <Thread: LOREM>]
從內Django的
最好,並沒有亂用數據庫本身
可能的複製[Django查詢不區分大小寫的列表匹配](http://stackoverflow.com/questions/2667524/django-query-case-insensitive-list-match) – solarissmoke