Мне нужно слишком аннотировать результат поиска регулярных выражений в условном выражении When () с использованием параметра then, 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()
)
)
Я хочу, чтобы аннотация была результатом сопоставления с образцом.