标签: sql django orm django-queryset
在我的网站上,用户应该能够过滤匹配“666 123 555 321 111”或{{1}的数字,例如*123*321* }}
*123*321*
默认情况下,django的orm逃脱%-sign。我可以使用正则表达式或原始查询,但是有一些解决方法吗?
UPD:我会把它放在这里以显示另一种方式。
LIKE '%123%321%'
答案 0 :(得分:7)
是的,Django取代了所有%和_。来自docs:
%
_
这意味着事情应该直观地工作,因此抽象不会 泄漏。例如,要检索包含百分比的所有条目 签名,只需使用百分号作为任何其他字符
我建议您使用extra方法。它不是真正的原始sql,虽然看起来很hacky:
YourModel.objects.extra(where=['title LIKE %s'], params=['%123%321%'])