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