我需要一个 django 过滤器查询,它接受一个字符串作为参数,并且它与存储在我的模型中的 REGEXS 相匹配

问题描述 投票:0回答:1

我有模型

class MyModel(models.Model):
    pattern = models.CharField('Regex Pattern',max_length=200)

我在此模型中创建了 100 个具有不同正则表达式值的条目, 现在我想查询模型,如果我传递的字符串与任何正则表达式匹配,那么应该返回该对象

我正在尝试执行与以下操作完全相反的操作(其中字段是普通字符串,正则表达式在参数中传递)

Book.objects.filter(title__iregex=r'^.{10,}$')

我尝试过 Stackoverflow,但我所能找到的只是有一个相反的标准方法。 我尝试了多种AI,但都失败了。

django-models
1个回答
0
投票

使用

.alias(…)
 [Django-doc] 注入字符串,然后使用
F
表达式 [Django-doc]
:

from django.db.models import F, Value

MyModel.objects.alias(val=Value('my_string')).filter(
    val__iregex=F('pattern')
)
© www.soinside.com 2019 - 2024. All rights reserved.