Я использовал ORM Django annotate
раньше с успехом несколько раз, но у меня возникают проблемы с этим конкретным случаем.Django ORM: аннотировать значение совпадающего объекта
Я хочу, чтобы аннотировать новое поле, называемое tag_to_show
, когда значение поля my_tag
соответствует определенному регулярному выражению.
Это то, что у меня есть на данный момент:
queryset.annotate(tag_to_show=Case(When(my_tag__iregex=pattern,
then=Value("I don't know what to put here")),
output_field=CharField(),
default=Value("Not matched")))
Я просто применяя регулярное выражение в my_tag
поле. Если регулярное выражение соответствует строке, содержащейся в поле my_tag
определенного объекта, я хочу аннотировать его значение в новом поле с именем tag_to_show
.
Любые идеи о том, что положить внутрь de Value
параметр?
Что вы хотите в качестве значения 'tag_to_show'? Это 'True' и' False' в зависимости от соответствия регулярного выражения или нет? – AKS
Я хочу, чтобы 'tag_to_show' имел значение строки соответствия. Но если его значение не соответствует регулярному выражению, я хочу, чтобы оно имело значение «Не соответствует». – Xar