Django ORM - 百分号表示喜欢

时间:2012-05-29 13:58:15

标签: sql django orm django-queryset

在我的网站上,用户应该能够过滤匹配“666 123 555 321 111”或{{1}的数字,例如*123*321* }}

默认情况下,django的orm逃脱%-sign。我可以使用正则表达式或原始查询,但是有一些解决方法吗?

UPD:我会把它放在这里以显示另一种方式。

LIKE '%123%321%'

1 个答案:

答案 0 :(得分:7)

是的,Django取代了所有%_。来自docs

  

这意味着事情应该直观地工作,因此抽象不会   泄漏。例如,要检索包含百分比的所有条目   签名,只需使用百分号作为任何其他字符

我建议您使用extra方法。它不是真正的原始sql,虽然看起来很hacky:

YourModel.objects.extra(where=['title LIKE %s'], params=['%123%321%'])