python - 如何在 Django ORM 中进行通配符搜索以替换单个字符 (_)?

标签 python django django-models wildcard django-orm

我有一个案例,我需要使用 Django ORM 进行通配符搜索。

我有一列 - column1,其中包含手机号码。

我需要对单个字符替换进行通配符搜索,即 MySQL 中的 _

我可以像 Mobilenumbers.objects.raw('SELECT * FROM MOBILENUMBERS WHERE COLUMN1 LIKE '98765_7644') 那样执行此操作。但是我如何在 Django ORM 中做同样的事情。

不是 Wildcard searching in Django 的重复项.

最佳答案

您可以使用__regex lookup [Django-doc] ,例如:

Mobilenumbers.objects.filter(
    <b>column1__regex=r'^98765.7644$'</b>
)

您甚至可以进一步限制它,只允许数字作为通配符:

Mobilenumbers.objects.filter(
    column1__regex=r'^98765<b>\d</b>7644$'
)

^$ 分别是开始和结束 anchor ,用于指定字符串以 987...,并以 ...644 结尾。

\d 仅匹配数字。因此,这意味着最后一个正则表达式将匹配 9876547644,但不匹配 98765a7644

关于python - 如何在 Django ORM 中进行通配符搜索以替换单个字符 (_)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56966762/

相关文章:

python - Pycharm 提示对 pytorch 的 nn.ModuleList 对象使用 [] 运算符

python - Django:按[无,其他]中的值过滤

python - Django rest framework api - 图片 url 未正确返回

Django 无法导入模型

python - 如何在 Django 中从查询集中删除而不删除原始模型本身

python - Matplotlib 隐藏特定刻度线

python - 如何从python中的另一个类调用函数?

python - "ValueError: Unknown activation: Activation"尝试加载具有自定义对象的模型时

json - 有没有办法在 django rest 框架中获得反向嵌套序列化程序?

mysql - 将 SQL 连接查询转换为 Django ORM