如何告诉Django在查询中不转义 % 和 _

1 投票
2 回答
1145 浏览
提问于 2025-04-16 00:32

我想在我的Django查询中使用通配符来进行搜索。但是文档上说:

Entry.objects.filter(headline__contains='%')

这会生成类似下面的SQL语句:

SELECT ... WHERE headline LIKE '%\%%';

我该如何告诉Django在查询中不要转义%和_这两个符号?或者在Django中有没有其他方法可以实现通配符搜索(除了直接写SQL)?

2 个回答

0

你可以使用 extra() 方法来插入一个自定义的条件语句:

Entry.objects.extra(where="headline LIKE '%'")
1

headline__contains='%' 这段意思是说,标题里面可以包含任何东西,对吧?那这样的话,为什么还要把它放在查询里呢?

撰写回答