Django query case-insensitive list match

前端 未结 7 1193
独厮守ぢ
独厮守ぢ 2020-12-03 09:21

I have a list of names that I want to match case insensitive, is there a way to do it without using a loop like below?

a = [\'name1\', \'name2\', \'name3\']
         


        
7条回答
  •  陌清茗
    陌清茗 (楼主)
    2020-12-03 10:13

    Adding onto what Rasmuj said, escape any user-input like so

    import re
    result = Name.objects.filter(name__iregex=r'(' + '|'.join([re.escape(n) for n in a]) + ')')
    

提交回复
热议问题