Как выполнить поиск по шаблону для замены одного символа (_) в Django ORM? - PullRequest
1 голос
/ 10 июля 2019

У меня есть случай, когда мне нужно выполнить поиск по шаблону, используя Django ORM.

У меня есть столбец - column1, который содержит номера мобильных телефонов.

Мне нужно выполнить поиск по шаблону для замены одного символа, который равен _ в MySQL.

Я могу сделать это как Mobilenumbers.objects.raw('SELECT * FROM MOBILENUMBERS WHERE COLUMN1 LIKE '98765_7644'). Но как мне сделать то же самое в Django ORM.

Это , а не дубликат Поиск по шаблону в Django .

1 Ответ

1 голос
/ 10 июля 2019

Вы можете использовать поиск __regex [Django-doc] , например:

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

Вы можете даже ограничить это далее, чтобы разрешить использовать только цифры в качестве подстановочного символа:

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

^ и $ являются начальным и конечным якорями соответственно, чтобы указать, что строка начинается с 987... и заканчивается ...644.

\d соответствует только цифрам. Так что это будет означать, что последнее регулярное выражение будет соответствовать 9876547644, но не 98765a7644.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...