3

我正在尝试使用 djangoupdateReplace使用正则表达式的函数来更新我的查询中的所有 url。到目前为止,这是我尝试过的,但似乎 django 的Value表达式无法识别我的正则表达式。

from django.db.models import Value
from django.db.models.functions import Replace

Foo.objects.filter(
    some_url__iregex=r'^\/some-link\/\d+\/').update(
    some_url=Replace(
        'some_url', Value(r'^\/some-link\/\d+\/'),
        Value('/some-link/')))

我的目标是删除之后的所有数字/some-link/(例如/some-link/55/test只是/some-link/test

4

1 回答 1

0

我无法Replace从 Django 中获得该功能,但我可以使用REGEXP_REPLACE该答案中详细说明的功能:https ://stackoverflow.com/a/68402017/3056056

于 2021-07-27T16:28:49.093 回答