2

我还需要使用 then 参数在 When() 条件表达式中注释正则表达式查找的结果,DB 是 Postgresql。

例如,您可以使用 SubStr() 函数来获取字段的子字符串,我希望能够使用正则表达式而不是位置子字符串。

我在想一些使用“REGEXP_MATCHES”的自定义函数,但我不确定我会怎么做,或者是否有必要。

qs = SomeModel.objects.all()

pattern = r'regex'

qs = qs.annotate(
    match=Case(
        When(
            some_model_field__regex=pattern,
            then=Regex('some_model_field', pattern)
        ),
        output_field=CharField()
    )
)

我希望注释是模式匹配的结果。

4

0 回答 0